Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Démarrer avec le niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments d'Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles qui sont propres à votre environnement en nuage.
Gérer les grappes Oracle Cloud Infrastructure Kubernetes Engine dans le CD Argo à l'aide de l'identité de charge de travail
Présentation
Argo CD est un outil de livraison continue GitOps déclaratif pour Kubernetes. Au moment où ce tutoriel a été écrit, le CD Argo ne dispose pas des capacités de l'interface de ligne de commande Oracle Cloud Infrastructure requises pour générer le jeton d'accès pour Oracle Cloud Infrastructure Kubernetes Engine (OKE). Par conséquent, une image de CD Argo personnalisée est requise.
Note : L'image CD Argo de base utilisée pour l'image personnalisée est
quay.io/argoproj/argocd:v2.14.9
.
Objectifs
-
Créez une image de CD Argo personnalisée contenant l'interface de ligne de commande OCI.
-
Installez Argo CD sur une grappe OKE améliorée à l'aide d'une image personnalisée.
-
Ajoutez une grappe OKE de base à la liste des grappes de CD Argo à l'aide de
execProviderConfig
. -
Déployez une application sur le cluster de base à partir d'Argo CD.
Préalables
-
Installez Podman ou Docker et l'interface de ligne de commande
argocd
. -
Grappe améliorée OKE pour installer le CD Argo.
Note : Vous ne pouvez utiliser l'identité de charge de travail que pour les grappes améliorées.
-
Grappe OKE gérée par Argo CD.
-
Jeton d'authentification pour votre utilisateur OCI (à partir de la console OCI, allez à votre profil d'utilisateur et cliquez sur Jetons d'authentification), l'activation peut prendre jusqu'à 5 minutes.
-
Permission pour votre utilisateur OCI de créer des référentiels dans le registre de conteneurs OCI.
Allow group <your_group> to manage repos in tenancy
-
Autorisation pour le CD Argo de gérer les grappes OKE.
allow any-user to manage all-resources in compartment <compartment_ocid> where all { request.principal.type='workload', request.principal.cluster_id = '<cluster_ocid>', request.principal.namespace = 'argocd', request.principal.service_account = 'argocd-application-controller' }
Note : Cette politique est trop ouverte, mais vous pouvez la rendre aussi restrictive que vous le souhaitez.
- Remplacements dans la politique :
compartment_ocid
: Il doit s'agir de l'OCID du compartiment qui contient les grappes à gérer avec le CD Argo.cluster_ocid
: Il doit s'agir de l'OCID de la grappe à partir duquel vous voulez gérer d'autres grappes. Celui qui a un CD Argo.request.principal.namespace
: Espace de noms où le CD Argo est déployé.request.principal.service_account
: Il s'agit du compte de service pour le responsable de l'application Argo CD (celui chargé de l'authentification de grappe).
- Remplacements dans la politique :
Tâche 1 : Pousser l'image personnalisée du CD Argo vers le registre de conteneurs pour OCI
Note : Vous pouvez utiliser Podman ou docker.
-
Téléchargez le fichier nommé
Dockerfile
à partir d'ici :Dockerfile
. -
Exécutez la commande suivante .
podman build --platform linux/amd64 -t argocd-oci:01 .
Note : Le point (.) à la fin de la commande sert au répertoire courant, où se trouve le fichier Dockerfile.
-
Exécutez la commande suivante .
podman tag argocd-oci:01 ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
-
Exécutez la commande suivante .
podman login ocir.**your_region**.oci.oraclecloud.com
- L'utilisateur est :
- Si le domaine d'identité est utilisé :
your_tenancy_namespace
/OracleIdentityCloudService
/your_email
. - Si le domaine par défaut est utilisé :
your_tenancy_namespace
/your_email
.
- Si le domaine d'identité est utilisé :
- Le mot de passe est votre jeton d'authentification OCI.
- L'utilisateur est :
-
Exécutez la commande suivante .
podman push ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
Tâche 2 : Installer le CD Argo à l'aide de l'image personnalisée
Note : Ne mettez à jour que l'image pour
argocd-application-controller
, car elle est responsable de l'authentification de grappe.
-
Téléchargez et installez le manifeste Argo CD à partir d'ici : argo-CD/manifests/install.yaml.
-
Modifiez le fichier pour modifier l'image de
argocd-application-controller
.- Modifier à partir de l'image :
quay.io/argoproj/argocd:latest
- À l'image :
ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
- Modifier à partir de l'image :
-
Exécutez la commande suivante pour créer un espace de noms
argocd
.kubectl create namespace argocd
-
Exécutez la commande suivante pour déployer
argocd
.kubectl apply -f install.yaml -n argocd
Tâche 3 : Ajouter une grappe à la liste des grappes de CD Argo
-
Démarrez Argo CD.
Note : Vous pouvez utiliser un équilibreur de charge OCI pour exposer le CD Argo. Pour cet exemple,
port-forward
sera utilisé à la place. Pour cela, vous avez besoin d'un terminal supplémentaire uniquement pour le transfert de port.-
Dans votre deuxième terminal, exécutez la commande suivante.
kubectl port-forward service/argocd-server -n argocd 63265:80
Note : Ne fermez pas ce terminal, passez à votre terminal précédent car il est utilisé pour conserver Argo CD.
-
Obtenez le mot de passe de l'administrateur du CD Argo à l'aide de la commande suivante.
kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
-
Connectez-vous (l'utilisateur est administrateur, le mot de passe est celui de la commande précédente) à l'aide de la commande suivante.
argocd login 127.0.0.1:63265
-
-
Téléchargez et modifiez le fichier nommé
add_cluster.yaml
à partir d'ici : add_cluster.yaml :Note : Cet exemple utilise TLS non sécurisé, il peut être modifié.
cluster_name
: Nom de la grappe qui apparaîtra dans la liste des grappes CD Argo.cluster_api_endpoint
: Point d'extrémité de la grappe à ajouter à la liste des grappes CD Argo.cluster_ocid
: OCID de la grappe à ajouter à la liste des grappes de CD Argo.region
: Région où réside la grappe.
-
Appliquez le fichier pour ajouter la grappe dans la liste des grappes CD Argo à l'aide de la commande suivante.
kubectl apply -f add_cluster.yaml
-
Vérifiez si la grappe a été ajoutée à la liste des grappes CD Argo à l'aide de la commande suivante.
argocd cluster list
Tâche 4 : Tester en déployant une application à partir du CD Argo vers le cluster
-
Téléchargez et modifiez le fichier nommé
deploy_example.yaml
à partir d'ici : deploy_example.yaml.cluster_name
: Nom de la grappe à déployer l'application.
-
Appliquez le fichier pour déployer une application simple vers la grappe cible à l'aide de la commande suivante.
kubectl apply -f deploy-example.yaml
-
Vérifiez si l'application a été déployée avec succès à l'aide des commandes suivantes.
argocd app list argocd app sync guestbook
Remerciements
- Auteur - Gabriel Feodorov (ingénieur en nuage principal)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation sur le produit, visitez Oracle Help Center.
Manage Oracle Cloud Infrastructure Kubernetes Engine Clusters in Argo CD using Workload Identity
G36150-01
Copyright ©2025, Oracle and/or its affiliates.