Uninstall the JFrog Crossplane Providers

Remove the JFrog Crossplane providers, their managed resources, and optionally Crossplane, in the required order.

Remove the JFrog Crossplane providers from your cluster. Follow the steps in the order shown.

If you remove the providers first, managed resources stay stuck in Terminating state. This happens because no active controller remains to remove their finalizers.

Prerequisites

⚠️

Warning

  • By default, deleting a managed resource in step 2 also deletes the matching JFrog object. To keep JFrog objects, complete step 1 first.
  • Step 5 deletes every leftover CRD in the cluster that matches the artifactory, xray, project, or platform crossplane.io API groups.
  • If lock.pkg.crossplane.io/lock stops responding, step 7 clears its finalizers.

Run these steps only after you complete the earlier steps in order.

Uninstall the Providers

  1. (Optional) To keep objects in JFrog after uninstallation, remove Delete from managementPolicies. For legacy resources, set deletionPolicy: Orphan.

  2. Delete managed resources in dependent order:

    1. Watches before policies
    2. Environments, roles, and assignments before projects
    3. Virtual repositories before local and remote repositories
  3. Wait until kubectl get managed -A returns no resources.

  4. Delete provider configurations:

    • For each provider, run kubectl delete clusterproviderconfigs.<provider>.m.crossplane.io --all.

      Replace <provider> with each provider's API group name: artifactory, xray, project, or platform.

    • Also delete namespaced and legacy provider configurations.

  5. Delete the Providers. Wait until kubectl get providerrevisions returns no resources. Then remove leftover CRDs:

    kubectl get crds -o name | grep -E '\.(artifactory|xray|project|platform)(\.m)?\.crossplane\.io$' | xargs kubectl delete
  6. Delete the DeploymentRuntimeConfig and the jfrog-registry and jfrog-creds Secrets.

  7. (Optional) Run helm uninstall crossplane -n crossplane-system.

    Helm keeps CRDs when you uninstall. Manually delete the remaining *.crossplane.io CRDs and the leftover Crossplane webhook configurations.

    If lock.pkg.crossplane.io/lock stops responding, clear its finalizers with:

    kubectl patch lock.pkg.crossplane.io lock --type merge -p '{"metadata":{"finalizers":[]}}'

Next Steps


Did this page help you?