Gerenciar Clusters do Oracle Cloud Infrastructure Kubernetes Engine em ArgoCD usando a Identidade da Carga de Trabalho
Introdução
ArgoCD é uma ferramenta de entrega contínua declarativa GitOps para o Kubernetes. No momento em que este tutorial foi escrito, o ArgoCD não tem os recursos da Interface de Linha de Comando (CLI do OCI) do Oracle Cloud Infrastructure necessários para gerar o token de acesso para o Oracle Cloud Infrastructure Kubernetes Engine (OKE), portanto, uma imagem ArgoCD personalizada é necessária.
Observação: A imagem base ArgoCD usada para a imagem personalizada é
quay.io/argoproj/argocd:v3.1.1.
Objetivos
-
Crie uma imagem ArgoCD personalizada que contenha a CLI do OCI.
-
Instale o ArgoCD no cluster do OKE aprimorado usando a imagem personalizada.
-
Adicione um cluster do OKE à lista de clusters ArgoCD usando
execProviderConfig. -
Implante um aplicativo no cluster do OKE de destino em ArgoCD.
Pré-requisitos
-
Instale o Podman ou o Docker e a CLI
argocd. -
Cluster aprimorado do OKE para instalar o ArgoCD.
Observação: Você só pode usar a identidade da carga de trabalho para clusters aprimorados.
-
Cluster do OKE a ser gerenciado por ArgoCD.
-
O token de autenticação do seu usuário do OCI (na Console do OCI, vá para seu perfil de usuário e clique em Tokens de autenticação), pode levar até 5 minutos para ser ativado.
-
Permissão para que o usuário do OCI crie repositórios no OCI Container Registry.
Allow group <your_group> to manage repos in tenancy -
Permissão para ArgoCD gerenciar clusters do 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' }Observação: Esta política está muito aberta, mas você pode torná-la tão restritiva quanto desejar.
- Substitua na política:
compartment_ocid: Esse deve ser o OCID do compartimento que contém os clusters que você deseja gerenciar com o ArgoCD.cluster_ocid: Este deve ser o OCID do cluster do qual você deseja gerenciar outros clusters. O que tem ArgoCD.
- Substitua na política:
Tarefa 1: Enviar a Imagem Personalizada ArgoCD ao OCI Container Registry
Observação: Você pode usar Podman ou docker.
-
Crie um
Dockerfilecontendo: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 -
Execute o comando a seguir dentro da pasta que contém o 'Dockerfile'.
podman build --platform linux/amd64 -t argocd-oci:01 .Observação: O ponto (.) no final do comando se destina ao diretório atual, onde o Dockerfile está localizado.
-
Execute o seguinte comando.
podman tag argocd-oci:01 ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01 -
Execute o seguinte comando.
podman login ocir.**your_region**.oci.oraclecloud.com- Usuário é:
- Se o domínio de identidades for usado:
your_tenancy_namespace/OracleIdentityCloudService/your_email. - Se o domínio padrão for usado:
your_tenancy_namespace/your_email.
- Se o domínio de identidades for usado:
- A senha é seu token de autenticação do OCI.
- Usuário é:
-
Execute o seguinte comando.
podman push ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
Tarefa 2: Instalar ArgoCD Usando a Imagem Personalizada
-
Baixar e instalar o manifesto ArgoCD aqui: argo-cd/manifests/install.yaml.
-
Edite o arquivo para substituir a imagem ArgoCD em nossa imagem personalizada.
- Alterar da imagem:
quay.io/argoproj/argocd - Para a imagem:
ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
- Alterar da imagem:
-
Execute o comando a seguir para criar o namespace
argocd.kubectl create namespace argocd -
Execute o comando a seguir para implantar o
argocd.kubectl apply -f install.yaml -n argocd
Tarefa 3: Adicionar um Cluster à Lista de Clusters ArgoCD
-
Inicie ArgoCD.
Observação: Você pode usar um Balanceador de Carga do OCI para expor ArgoCD. Para este exemplo,
port-forwardserá usado. Use um terminal adicional apenas para encaminhamento de porta.-
No seu segundo terminal, execute o comando a seguir.
kubectl port-forward service/argocd-server -n argocd 63265:80Observação: Não feche este terminal, alterne para o anterior, pois ele é usado para manter o ArgoCD ativo.
-
Obtenha a senha de administrador ArgoCD usando o comando a seguir.
kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d -
Faça login (usuário é admin, senha é a do comando anterior) usando o comando a seguir.
argocd login 127.0.0.1:63265
-
-
Faça download do arquivo
add_cluster.yamle edite-o aqui: add_cluster.yaml:Observação: Este exemplo está usando TLS inseguro, ele pode ser alterado.
cluster_name: O nome do cluster que aparecerá na lista de clusters ArgoCD.cluster_api_endpoint: O ponto final do cluster que você deseja adicionar à lista de clusters ArgoCD.cluster_ocid: O OCID do cluster que você deseja adicionar à lista de clusters ArgoCD.region: A região em que o cluster reside.
-
Aplique o arquivo para adicionar o cluster na lista de clusters ArgoCD usando o comando a seguir.
kubectl apply -f add_cluster.yaml -
Verifique se o cluster foi adicionado à lista de clusters ArgoCD usando o comando a seguir.
argocd cluster list
Tarefa 4: Testar Implantando um Aplicativo de ArgoCD no Cluster
-
Faça download do arquivo
deploy_example.yamle edite-o aqui: deploy_example.yaml.cluster_name: Nome do cluster que você deseja implantar o aplicativo.
-
Aplique o arquivo para implantar um aplicativo simples no cluster de destino usando o comando a seguir.
kubectl apply -f deploy-example.yaml -
Verifique se o aplicativo foi implantado com sucesso usando os comandos a seguir.
argocd app list argocd app sync guestbook
Confirmações
- Autor - Gabriel Feodorov (Engenheiro Sênior de Nuvem)
Mais Recursos de Aprendizado
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal do Oracle Learning YouTube. Além disso, acesse education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Manage Oracle Cloud Infrastructure Kubernetes Engine Clusters in Argo CD using Workload Identity
G36155-02