Estou tentando desinstalar e reinstalar o cert-manager em nossos clusters Kubernetes. Seus documentos de desinstalação mencionam:
Antes de continuar, certifique-se de que todos os recursos do cert-manager que foram criados pelos usuários foram excluídos. Você pode verificar quaisquer recursos existentes com o seguinte comando:
$ kubectl get Issuers,ClusterIssuers,Certificates,CertificateRequests,Orders,Challenges --all-namespaces
O comando gera centenas de recursos, espalhados por duas dúzias de namespaces.
Como posso excluir todos eles com eficiência, sem excluir mais nada nos namespaces?
O kubectl delete
comando requer a especificação de um namespace ao excluir todos de um determinado tipo, como este: kubectl delete certificates -n example-ns
, então isso não é bom aqui.
Excluir cada um por nome em um loop ao especificar -A
também não funciona, pois preciso especificar o namespace:
$ kubectl delete -A order.certmanager.k8s.io/fcfa95477bc0149dbc16c99c54faa82e-cert-1862418815
error: a resource cannot be retrieved by name across all namespaces
Qual é a mágica cli correta aqui?
Você deve excluir o todo
crd
(Custom Resource Definition), primeiro liste seus CRDs come, em seguida, exclua o CRD, por exemplo (usando
Issuer
como exemplo)Quando o CRD é excluído, também todas as instâncias desse CRD (por exemplo, todos os recursos de
kind: Issuer
) são excluídas.