O ArgoLab é um ambiente de laboratório automatizado que utiliza Vagrant e Ansible para configurar um cluster Kubernetes local com k3d e implementar o ArgoCD para gerenciamento contínuo de aplicações através de GitOps.
Antes de começar, certifique-se de ter os seguintes softwares instalados em sua máquina:
Siga os passos abaixo para configurar o ambiente:
-
Clone o repositório:
git clone https://github.com/cflb/argolab.git cd argolab -
Executar o Script de Inicialização - Com Vagrant
./init-argocd-with-vagrant.sh
Este script realiza as seguintes ações automaticamente:
- Inicializa uma máquina virtual via Vagrant (vagrant up) e executa uma playbook.yml para fazer uma otimização de segurança no sistema operacionial que vai hospedar o cluster k3d.
- Executa a playbook-argo.yml do Ansible para:
- Instalar e configurar k3d.
- Criar um cluster Kubernetes local com 1 controll-plane e 2 agentes.
- Instalar e configurar o ArgoCD no namespace argocd.
- Te informa na tela Login e Senha usados para acessar o serviço exposto em: https://0.0.0.0:8088
- Expõe o serviço do ArgoCD para acesso.
Você não precisa iniciar o script novamente, você só precisa garantir que o cluster esta ativo. Também lembre que o kubeconfig necessário para acessar o cluster esta no diretório kubeconfig/ criado apos a primeira execução com sucesso do script de inicialização.
Export o kubeconfig para usar o cluster k3d
Execute dentro do diretorio do Projeto clonado.
export KUBECONFIG=./kubeconfig/configVocê pode também definir este kubeconfig como padrão para você, copiando copiando o arquivo config (cp kubeconfig/config $HOME/.kube/) ele para o seu $HOME/.kube/
Coletar senha padrão do argocd via segredo (você pode mudar esta senha quando quiser)
kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 --decodeExpor agoracd on 0.0.0.0:8088 (você pode mudar a porta se quiser)*
kubectl port-forward --address 0.0.0.0 svc/argocd-server -n argocd 8088:443-
Executar o Script de Inicialização - Na máquina local
./init-argocd.sh