Implante o Jenkins em um cluster ACK Serverless via Helm para executar builds em pods provisionados dinamicamente.
Pré-requisitos
Um cluster ACK Serverless foi criado.
O kubectl está conectado ao cluster.
Considerações
Você é responsável pela manutenção do Jenkins. Não há suporte técnico de nível empresarial disponível.
Etapa 1: Implantar o Jenkins
-
Adicione e atualize o repositório Helm do Jenkins.
helm repo add jenkins https://charts.jenkins.io helm repo updateSaída esperada:
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "jenkins" chart repository Update Complete. ⎈Happy Helming!⎈NotaO repositório Helm está hospedado fora da China continental. As atualizações a partir de clusters na China continental podem levar mais tempo.
-
Instale o Jenkins.
-
Crie o namespace
cicd.kubectl create ns cicd -
Crie um volume de armazenamento NAS compartilhado.
Sem um volume persistente para o diretório home do Jenkins, as configurações serão perdidas ao reiniciar o pod do controller.
-
Implante o Jenkins no namespace
cicd.helm -n cicd install jenkins jenkins/jenkins \ --set persistence.existingClaim=pvc-nas \ --set controller.serviceType="LoadBalancer" \ --set controller.adminPassword="admin"persistence.existingClaim=pvc-nas: Obrigatório. Nome do PVC. Este exemplo usa pvc-nas no namespace
cicd.controller.serviceType="LoadBalancer": Opcional. O tipo de serviço padrão é ClusterIP.
controller.adminPassword="admin": Opcional. Se não definido, uma senha aleatória será gerada. Consulte Acessar o Jenkins via LoadBalancer e obter a senha padrão.
Consulte helm-charts para ver todos os parâmetros de implantação.
-
Verifique o status do pod do Jenkins. Aguarde até que o pod entre no estado Running.
kubectl -n cicd get poSaída esperada:
NAME READY STATUS RESTARTS AGE jenkins-0 2/2 Running 0 3m3s
-
-
Abra o Jenkins em um navegador e faça login com suas credenciais.
Consulte Acessar o Jenkins e obter a senha padrão.
Etapa 2: Criar uma tarefa de pipeline
Este exemplo cria um pipeline chamado first-pipeline. O Jenkins provisiona um pod slave dinâmico para cada build e o libera após a conclusão. Consulte a documentação do Jenkins para obter detalhes de configuração.
Faça login no Jenkins. No painel de navegação à esquerda, clique em New Item.
Em Enter an item name, insira first-pipeline, selecione Pipeline e clique em OK.
Clique na aba Pipeline, selecione Hello World e clique em Save.
No painel de navegação à esquerda, clique em Build Now.
Em Build History, clique em um número de build, como #1. Em seguida, clique em Console Output.
Acessar o Jenkins e obter a senha padrão
-
Por padrão, o serviço do Jenkins usa ClusterIP. Para expô-lo via balanceador de carga:
kubectl -n cicd patch svc jenkins -p '{"spec": {"type": "LoadBalancer"}}' -
Se nenhuma senha tiver sido definida durante a implantação, recupere a senha padrão:
kubectl -n cicd exec -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo