Estoy intentando desinstalar y reinstalar cert-manager en nuestros clústeres de Kubernetes. Sudesinstalar documentosmencionar:
Antes de continuar, asegúrese de que se hayan eliminado todos los recursos del administrador de certificados creados por los usuarios. Puede verificar los recursos existentes con el siguiente comando:
$ kubectl get Issuers,ClusterIssuers,Certificates,CertificateRequests,Orders,Challenges --all-namespaces
El comando genera cientos de recursos, repartidos en dos docenas de espacios de nombres.
¿Cómo puedo eliminarlos todos de manera eficiente, sin eliminar nada más en los espacios de nombres?
El kubectl delete
comando requiere especificar un espacio de nombres al eliminar todos los de un determinado tipo, como este: kubectl delete certificates -n example-ns
, así que eso no sirve aquí.
Eliminar cada uno por nombre en un bucle mientras se especifica -A
tampoco funciona, ya que necesito especificar el espacio de nombres:
$ kubectl delete -A order.certmanager.k8s.io/fcfa95477bc0149dbc16c99c54faa82e-cert-1862418815
error: a resource cannot be retrieved by name across all namespaces
¿Cuál es la magia cli correcta aquí?
Respuesta1
Debe eliminar todo crd
(Definición de recursos personalizados), primero enumere sus CRD con
kubectl get crd
y luego elimine el CRD, con, por ejemplo (usando Issuer
como ejemplo)
kubectl delete crd issuer.<something>.<something>
Cuando se elimina el CRD, también kind: Issuer
se eliminan todas las instancias de ese CRD (por ejemplo, todos los recursos de).