Qual o objetivo do External Secrets Operator ?
O objetivo do External Secrets Operator (ESO) é sincronizar chaves secretas de APIs externas com o Kubernetes. O ESO é uma coleção de recursos personalizados da API - ExternalSecret, SecretStore e ClusterSecretStore - que fornecem uma abstração amigável para o usuário da API externa, armazenando e gerenciando o ciclo de vida das chaves para você.
Pré-requisitos
Para colaborar com o projeto External Secrets Operator (ESO), é necessário instalar algumas ferramentas no computador. Neste guia, será explicado o que é cada ferramenta, por que é necessária, a versão recomendada e como instalá-la no sistema operacional correspondente.
Sistemas Operacionais Suportados
Para colaborar com o projeto External Secrets Operator (ESO), é recomendado utilizar sistemas operacionais baseados em Unix, como Linux e macOS. O ambiente de desenvolvimento do ESO é principalmente voltado para esses sistemas, e muitas das ferramentas e scripts utilizados no desenvolvimento são projetados para funcionar neles.
É possível desenvolver no Windows?
É possível utilizar o Windows para o desenvolvimento, mas há considerações importantes a serem feitas. Como o ambiente de desenvolvimento do ESO não é otimizado para o Windows, podem surgir pro blemas de incompatibilidade com ferramentas como Make, Tilt e scripts shell. Os scripts de automação e comandos presentes no projeto são escritos para ambientes Unix, utilizando bash scripting, o que pode não ser compatível com o Windows sem adaptações. Este tutorial não cobrirá a instalação e configuração de ferramentas no Windows devido à complexidade e falta de testes.
Instalar Go (Golang)
Sobre o Golang
O que é Go?
Go, também conhecido como Golang, é uma linguagem de programação criada pelo Google. É conhecida por ser eficiente, fácil de aprender e excelente para desenvolver aplicativos rápidos e escaláveis.
Por que é necessário Go?
No projeto External Secrets Operator, Go é utilizado para desenvolver partes fundamentais do código. É necessário para compilar, executar e contribuir com o código-fonte do projeto.
Instalação do Golang
Versão Necessária
Versão mínima: Go 1.20 ou superior.
Versão recomendada: Go 1.23.3
Durante o desenvolvimento deste guia, a versão mais recente do Go é a 1.23.3, a qual funcionou perfeitamente com o projeto External Secrets Operator. Versões anteriores apresentaram falhas nos testes da aplicação. Antes de testar o projeto, verifique sua versão do Go.
Como Instalar Go
Instalação no Linux
1. Baixar o arquivo de instalação do Go:
Acesse o site oficial ou use o comando abaixo:
wget https://golang.org/dl/go1.23.3.linux-amd64.tar.gz
2. Remover instalações anteriores do Go:
sudo rm -rf /usr/local/go
3. Extrair o novo arquivo do Go para `/usr/local`:
sudo tar -C /usr/local -xzf go1.23.3.linux-amd64.tar.gz
4. Atualizar o PATH adicionando `/usr/local/go/bin`:
Edite o arquivo `~/.profile` ou `/etc/profile` e adicione:
export PATH=$PATH:/usr/local/go/bin
Ou execute diretamente no terminal para a sessão atual:
export PATH=$PATH:/usr/local/go/bin
5. Aplicar as alterações do PATH imediatamente:
source ~/.profile
6. Verificar a instalação do Go e se está na versão suportada:
go version
Nota: Para Debian/Ubuntu, é possível instalar o Go utilizando o Snap:sudo snap install --classic go
Instalação no macOS
1. Baixar o arquivo de instalação do Go:
Apple macOS (ARM64), macOS 11 ou superior Apple macOS (Intel), macOS 10.15 ou superior2. Executar o arquivo baixado e seguir as instruções de instalação.
O pacote instala a distribuição do Go em `/usr/local/go`. O instalador deve adicionar o diretório `/usr/local/go/bin` à variável de ambiente `PATH`. Pode ser necessário reiniciar qualquer sessão aberta do Terminal para que a alteração entre em vigor.
3. Verificar a instalação do Go e se está na versão suportada:
go version
Quaisquer dúvidas ou problemas com a instalação do Go, consulte a documentação oficial.
Instalar Helm
Sobre o Helm
O que é o Helm?
O Helm é um gerenciador de pacotes para Kubernetes, a plataforma que automatiza a implantação, escalonamento e gerenciamento de aplicativos em contêineres.
Por que é necessário o Helm?
No projeto External Secrets Operator, o Helm é utilizado para simplificar a instalação e gerenciamento de aplicações dentro do Kubernetes, automatizando processos complexos de configuração e implantação.
Instalação do Helm
Versão Necessária
Versão recomendada: Helm 3 (versão mais recente do Helm 3).
Como Instalar o Helm
Instalação no Linux
1. Baixar o script de instalação:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
2. Tornar o script executável:
chmod 700 get_helm.sh
3. Executar o script de instalação:
./get_helm.sh
4. Verificar a instalação do Helm:
helm version
Instalação no macOS
1. Usando o Homebrew:
brew install helm
2. Verificar a instalação do Helm:
helm version
Para outras opções de instalação e mais detalhes, consulte o guia oficial de instalação do Helm.
Instalar yq
Sobre o yq
O que é o yq?
O yq é uma ferramenta de linha de comando para ler, manipular e escrever arquivos YAML, amplamente utilizados para configurações.
Por que é necessário o yq?
No projeto External Secrets Operator, o yq é utilizado para automatizar a edição de arquivos de configuração YAML, facilitando ajustes e implementações.
Instalação do yq
Versão Necessária
Versão recomendada: yq v4.44.3 ou superior.
Como Instalar o yq
Instalação no Linux
1. Baixar o binário do yq:
wget https://github.com/mikefarah/yq/releases/download/v4.44.3/yq_linux_amd64.tar.gz
2. Extrair o arquivo baixado:
tar xvf yq_linux_amd64.tar.gz
3. Mover o binário para /usr/local/bin
e tornar executável:
sudo mv yq_linux_amd64 /usr/local/bin/yq
sudo chmod +x /usr/local/bin/yq
4. Verificar a instalação do yq:
yq --version
Alternativa: Caso encontre problemas, instale via Snap:sudo snap install yq
Instalação no macOS
1. Usando o Homebrew:
brew install yq
2. Verificar a instalação do yq:
yq --version
Para outras opções de instalação e mais detalhes, consulte o repositório oficial do yq.
Instalar jq
Sobre o jq
O que é o jq?
O jq é uma ferramenta de linha de comando para processar e manipular dados em formato JSON.
Por que é necessário o jq?
No projeto External Secrets Operator, o jq é essencial para trabalhar com dados JSON, permitindo filtrar e transformar informações de forma eficiente.
Instalação do jq
Versão Necessária
Versão recomendada: jq 1.6 ou superior.
Como Instalar o jq
Instalação no Linux
1. Para Debian/Ubuntu:
sudo apt-get install jq
2. Para Fedora:
sudo dnf install jq
3. Verificar a instalação do jq:
jq --version
Instalação no macOS
1. Usando o Homebrew:
brew install jq
2. Verificar a instalação do jq:
jq --version
Para outras opções de instalação e mais detalhes, consulte o site oficial do jq.
Instalar Docker
Sobre o Docker
O que é o Docker?
O Docker é uma plataforma que permite criar, implantar e executar aplicativos em contêineres. Os contêineres permitem empacotar uma aplicação com todas as suas dependências em uma unidade padrão para desenvolvimento e implantação.
Por que é necessário o Docker?
No projeto External Secrets Operator, o Docker é usado para criar imagens de contêineres e executar serviços em ambientes isolados. É essencial para o desenvolvimento, teste e implantação da aplicação dentro de um ambiente Kubernetes.
Instalação do Docker
Como Instalar o Docker
Instalação no Linux
1. Atualizar os pacotes existentes:
sudo apt-get update
2. Instalar pacotes necessários:
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
3. Adicionar a chave GPG oficial do Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4. Adicionar o repositório do Docker:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. Instalar o Docker Engine:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
6. Verificar a instalação do Docker:
sudo docker run hello-world
Instalação no macOS
1. Baixar o Docker Desktop para macOS:
Acesse o site oficial e baixe o Docker Desktop:
2. Instalar o Docker Desktop:
- Abra o arquivo
Docker.dmg
. - Arraste o ícone do Docker para a pasta
Applications
. - Inicie o Docker Desktop a partir da pasta
Applications
.
3. Verificar a instalação do Docker:
docker --version
Para outras opções de instalação e mais detalhes, consulte a documentação oficial do Docker.
Configuração necessária no Docker
Configurar Docker para Uso sem Root
Por padrão, o Docker requer privilégios de superusuário (root) para executar. Para facilitar o uso, é recomendado adicionar o usuário atual ao grupo docker
para executar comandos sem sudo
.
Passos para configurar o Docker sem root no Linux
1. Criar o grupo docker (se não existir):
sudo groupadd docker
2. Adicionar o usuário atual ao grupo docker:
sudo usermod -aG docker $USER
3. Aplicar as alterações de grupo sem fazer logout:
newgrp docker
4. Verificar se é possível executar o Docker sem sudo:
docker run hello-world
Se o comando funcionar sem erros, a configuração foi bem-sucedida.
Instalar kubectl
Sobre o kubectl
O que é o kubectl?
O kubectl é a ferramenta de linha de comando para gerenciar clusters Kubernetes. Permite executar comandos no cluster, gerenciar recursos e depurar aplicações.
Por que é necessário o kubectl?
No projeto External Secrets Operator, o kubectl é usado para interagir com o cluster Kubernetes local ou remoto, aplicar configurações e verificar o estado dos recursos implantados.
Instalação do kubectl
Versão Necessária
Versão compatível com a versão do Kubernetes instalada (geralmente a versão estável mais recente).
Como Instalar o kubectl
Instalação no Linux
1. Baixar a versão mais recente do kubectl:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
2. Tornar o binário executável:
chmod +x kubectl
3. Mover o binário para o PATH:
sudo mv kubectl /usr/local/bin/
4. Verificar a instalação do kubectl:
kubectl version --client
Instalação no macOS
1. Usando o Homebrew:
brew install kubectl
2. Verificar a instalação do kubectl:
kubectl version --client
Para outras opções de instalação e mais detalhes, consulte a documentação oficial do kubectl.
Instalar ctlptl e criar um cluster Kind com registro local
Sobre o ctlptl
O que é o ctlptl?
O ctlptl (Control Plane Tool) é uma ferramenta para gerenciar clusters locais de desenvolvimento Kubernetes. Ele facilita a criação e gerenciamento de clusters como o Kind (Kubernetes in Docker) e a configuração de registros locais de contêiner.
Por que é necessário o ctlptl?
No projeto External Secrets Operator, o ctlptl é usado para criar e gerenciar um cluster Kubernetes local usando o Kind, além de configurar um registro local de contêiner para armazenar imagens Docker durante o desenvolvimento.
Instalação do ctlptl
Versão Necessária
Versão mais recente disponível do ctlptl.
Como Instalar o ctlptl
Instalação no Linux
1. Instalar o ctlptl:
Use o comando abaixo para instalar a versão 0.8.36
do ctlptl diretamente em /usr/local/bin
. Substitua 0.8.36
por outra versão, se necessário.
CTLPTL_VERSION="0.8.36"
curl -fsSL https://github.com/tilt-dev/ctlptl/releases/download/v$CTLPTL_VERSION/ctlptl.$CTLPTL_VERSION.linux.x86_64.tar.gz | sudo tar -xzv -C /usr/local/bin ctlptl
2. Verificar a instalação do ctlptl:
ctlptl version
Instalação via Go
1. Certifique-se de que o Go está instalado:
Se o Go não estiver instalado, siga as instruções no site oficial do Go.
2. Instale o ctlptl via Go:
go install github.com/tilt-dev/ctlptl/cmd/ctlptl@latest
3. Adicione o diretório $GOPATH/bin
ao PATH (se necessário):
export PATH=$PATH:$(go env GOPATH)/bin
4. Verifique a instalação do ctlptl:
ctlptl version
Instalação no macOS
1. Usando o Homebrew:
brew install tilt-dev/tap/ctlptl
2. Verificar a instalação do ctlptl:
ctlptl version
Criar um Cluster Kind com Registro Local
Sobre o Kind
O Kind (Kubernetes in Docker) é uma ferramenta para executar clusters Kubernetes locais usando contêineres Docker como nós do cluster.
Como Criar um Cluster Kind com Registro Local
1. Criar um registro local de contêiner:
docker run -d --restart=always -p "5000:5000" --name kind-registry registry:2
2. Criar um cluster Kind usando o ctlptl e conectá-lo ao registro local:
ctlptl create cluster kind --registry=kind-registry
Isso criará um cluster Kind configurado para usar o registro local em localhost:5000
.
3. Verificar se o cluster está funcionando:
kubectl cluster-info --context kind-kind
4. Listar os clusters gerenciados pelo ctlptl:
ctlptl get clusters
Instalar Tilt
Sobre o Tilt
O que é o Tilt?
O Tilt é uma ferramenta que agiliza o desenvolvimento em ambientes Kubernetes. Automatiza a construção, implantação e monitoramento do código, permitindo um ciclo de desenvolvimento mais rápido.
Por que é necessário o Tilt?
No projeto External Secrets Operator, o Tilt é utilizado para desenvolver e testar alterações no código de forma eficiente, refletindo mudanças quase instantaneamente no ambiente Kubernetes local.
Instalação do Tilt
Versão Necessária
- Pré-requisitos: Instalar o Docker, kubectl, Kind e ctlptl.
- Versão recomendada: Versão mais recente disponível.
Como Instalar o Tilt
Instalação no Linux
1. Baixar e executar o script de instalação:
curl -fsSL https://raw.githubusercontent.com/tilt-dev/tilt/master/scripts/install.sh | bash
2. Verificar a instalação do Tilt:
tilt version
Instalação no macOS
1. Usando o Homebrew:
brew install tilt-dev/tap/tilt
2. Verificar a instalação do Tilt:
tilt version
Para outras opções de instalação e mais detalhes, consulte o guia oficial de instalação do Tilt.