14.4. Installation de l’opérateur de cert-manager
Créer un projet pour installer l’opérateur cert-manager dans:
$ oc new-project cert-manager-operatorImportantDans votre cluster, n’essayez pas d’utiliser plus d’un opérateur de cert-manager. Dans le cas où vous avez un opérateur de cert-manager de communauté installé dans votre cluster, vous devez le désinstaller avant d’installer l’opérateur cert-manager pour Red Hat OpenShift.
Installez l’opérateur de cert-manager pour Red Hat OpenShift:
$ cat << EOF | oc apply -f - apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-cert-manager-operator-group namespace: cert-manager-operator spec: targetNamespaces: - cert-manager-operator --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: openshift-cert-manager-operator namespace: cert-manager-operator spec: channel: stable-v1 installPlanApproval: Automatic name: openshift-cert-manager-operator source: redhat-operators sourceNamespace: openshift-marketplace EOFNoteIl faut quelques minutes pour que cet opérateur installe et complète sa configuration.
Assurez-vous que l’opérateur de cert-manager est en cours d’exécution:
$ oc -n cert-manager-operator get podsExemple de sortie
NAME READY STATUS RESTARTS AGE cert-manager-operator-controller-manager-84b8799db5-gv8mx 2/2 Running 0 12sAnnotez le compte de service utilisé par les pods de cert-manager avec le rôle AWS IAM que vous avez créé précédemment:
$ oc -n cert-manager annotate serviceaccount cert-manager eks.amazonaws.com/role-arn=${ROLE_ARN}Redémarrez la pod de contrôleur de cert-manager existant en exécutant la commande suivante:
$ oc -n cert-manager delete pods -l app.kubernetes.io/name=cert-managerCorrigez la configuration de l’opérateur pour utiliser des noms externes pour éviter les problèmes de résolution des défis DNS-01:
$ oc patch certmanager.operator.openshift.io/cluster --type merge \ -p '{"spec":{"controllerConfig":{"overrideArgs":["--dns01-recursive-nameservers-only","--dns01-recursive-nameservers=1.1.1.1:53"]}}}'Créez une ressource ClusterIssuer pour utiliser Let's Encrypt en exécutant la commande suivante:
$ cat << EOF | oc apply -f - apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-production spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: ${EMAIL} # This key doesn't exist, cert-manager creates it privateKeySecretRef: name: prod-letsencrypt-issuer-account-key solvers: - dns01: route53: hostedZoneID: ${ZONE_ID} region: ${REGION} secretAccessKeySecretRef: name: '' EOFLa ressource ClusterIssuer est prête:
$ oc get clusterissuer.cert-manager.io/letsencrypt-productionExemple de sortie
NAME READY AGE letsencrypt-production True 47s