Gérer les grappes Oracle Cloud Infrastructure Kubernetes Engine dans ArgoCD à l'aide de l'identité de charge de travail

Présentation

ArgoCD est un outil de diffusion continue GitOps déclaratif pour Kubernetes. Au moment de l'écriture de ce tutoriel, ArgoCD 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 ArgoCD personnalisée est requise.

Note : L'image ArgoCD de base utilisée pour l'image personnalisée est quay.io/argoproj/argocd:v3.1.1.

Objectifs

Conditions requises

Tâche 1 : Pousser l'image personnalisée ArgoCD vers le registre de conteneurs OCI

Note : Vous pouvez utiliser Podman ou docker.

  1. Créez un fichier Dockerfile contenant :

    FROM quay.io/argoproj/argocd:v3.1.1
    
    USER root
    
    
    RUN apt-get update; \
        apt-get install -y --no-install-recommends python3-venv; \
        python3 -m venv /opt/oci; \
        /opt/oci/bin/pip install --no-cache-dir --upgrade pip; \
        /opt/oci/bin/pip install --no-cache-dir "oci-cli==3.65.0"; \
        ln -s /opt/oci/bin/oci /usr/local/bin/oci; \
        apt-get clean; \
        rm -rf /var/lib/apt/lists/*
    
    USER 999
  2. Exécutez la commande suivante dans le dossier contenant le 'Dockerfile'.

    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.

  3. 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
  4. 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.
    • Le mot de passe est votre jeton d'authentification OCI.
  5. 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 ArgoCD à l'aide de l'image personnalisée

  1. Téléchargez et installez le manifeste ArgoCD à partir d'ici : argo-cd/manifests/install.yaml.

  2. Modifiez le fichier pour remplacer l'image ArgoCD par notre image personnalisée.

    • Modifier à partir de l'image : quay.io/argoproj/argocd
    • À l'image : ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
  3. Exécutez la commande suivante pour créer un espace de noms argocd.

    kubectl create namespace argocd
  4. 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 ArgoCD

  1. Démarrez ArgoCD.

    Note : Vous pouvez utiliser un équilibreur de charge OCI pour exposer ArgoCD. Pour cet exemple, port-forward sera utilisé à la place. Utilisez un terminal supplémentaire uniquement pour le transfert de port.

    1. 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 maintenir ArgoCD actif.

    2. Obtenez le mot de passe de l'administrateur ArgoCD à l'aide de la commande suivante.

      kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
    3. 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
  2. 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 ArgoCD.
    • cluster_api_endpoint : Point d'extrémité de la grappe à ajouter à la liste des grappes ArgoCD.
    • cluster_ocid : OCID de la grappe à ajouter à la liste des grappes ArgoCD.
    • region : Région où réside la grappe.
  3. Appliquez le fichier pour ajouter la grappe dans la liste des grappes ArgoCD à l'aide de la commande suivante.

    kubectl apply -f add_cluster.yaml
  4. Vérifiez si la grappe a été ajoutée à la liste des grappes ArgoCD à l'aide de la commande suivante.

    argocd cluster list

Tâche 4 : Tester en déployant une application depuis ArgoCD vers la grappe

  1. 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.
  2. 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
  3. 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

Ressources d'apprentissage supplémentaires

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.