Perform an uninstallation#

Uninstall a DNS-controller instance#

When to follow these instructions#

Follow the instructions below if you want to uninstall a DNS-controller instance and revert to using the associated original Istio service entries. Perform the tasks in order.

Re-create your original Istio service entries#

Perform this step for each original Istio service entry associated with the DNS-controller instance:

  • Re-create the original, DNS-resolution Istio service entry:

    $ kubectl create -f <originalServiceEntryManifestFilename> --namespace <namespaceName>
    

Delete the Aspen Mesh DNS static entries#

  1. Are you uninstalling a general DNS-controller instance (not a realm-specific DNS-controller instance)?

    • Yes:

      Perform this step for each namespace managed by the general DNS-controller instance:

      • Delete the Aspen Mesh DNS static entries in the namespace:

        $ kubectl delete dnsstaticentries \
            --namespace <namespaceName> \
            $(kubectl get dnsstaticentries --namespace <namespaceName> -o json | jq -r '.items[]| select(has("status.lastRealm") | not) | .metadata.name')
        

        Kubernetes deletes the associated managed Istio service entries.

    • No:

      Perform this step for each namespace in the DNS-controller instance’s realm:

      • Delete the Aspen Mesh DNS static entries in the namespace:

        $ kubectl delete dnsstaticentries \
            --namespace <namespaceName> \
            $(kubectl get dnsstaticentries --namespace <namespaceName> -o json | jq -r '.items[]|select(.status.lastRealm=="<realmName>") | .metadata.name')
        

        Kubernetes deletes the associated managed Istio service entries.

Uninstall the DNS-controller instance#

  • Uninstall the DNS-controller instance:

    $ helm uninstall <dnsControllerInstanceName> --namespace <namespaceName> --wait
    

(Realm-specific DNS-controller instance only) Unassign the namespaces assigned to the DNS-controller instance’s realm#

Perform this step for each namespace in the DNS-controller instance’s realm:

  • Remove the realm label from the namespace:

    $ kubectl label namespace <namespaceName> dnscontroller/realm-
    

Uninstall all DNS-controller instances#

When to follow these instructions#

Follow the instructions below if you want to uninstall all DNS-controller instances and revert to using only original Istio service entries. Perform the tasks in order.

Re-create your original Istio service entries#

Perform this step for every original Istio service entry associated with a DNS-controller instance:

  • Re-create the original, DNS-resolution Istio service entry:

    $ kubectl create -f <originalServiceEntryManifestFilename> --namespace <namespaceName>
    

Uninstall all DNS-controller instances#

Perform this step for each DNS-controller instance:

  • Uninstall the DNS-controller instance:

    $ helm uninstall <dnsControllerInstanceName> --namespace <namespaceName> --wait
    

Delete the CRD for the Aspen Mesh DNS static entries#

  • Delete the custom resource definition for the Aspen Mesh DNS static entries:

    $ kubectl delete crd dnsstaticentries.networking.aspenmesh.io
    

    Kubernetes deletes all Aspen Mesh DNS static entries in the cluster and their associated managed Istio service entries.