Configuração dos pipelines de implantação contínua da Tekton com DevSecOps
Com este tutorial, você pode configurar um pipeline de implantação contínua (CD) e um conjunto de ferramentas que seguem as práticas recomendadas de conformidade.
Antes de Iniciar
- Crie um cluster Kubernetes em IBM Cloud® Kubernetes Service para implantar seu aplicativo.
- Crie segredos da cadeia de ferramentas para acessar e proteger diferentes integrações.
- Cadeia de ferramentas de integração contínua(CI)de conformidade configurada com IBM Cloud® DevOps Insights integrações.
- Opcional. Configure IBM Cloud® Object Storage como o armário de evidências de conformidade para armazenar evidências de execução de pipeline.
- Valide suas IBM Cloud® Identity and Access Management permissões(IAM) que são atribuídas às integrações correspondentes.
- Assista ao vídeo a seguir para obter uma visão geral do processo de configuração da cadeia de ferramentas de CD.
Inicie a configuração da cadeia de ferramentas de CD
O serviço Continuous Delivery fornece modelos que o orientam na configuração da cadeia de ferramentas e criam processos em uma ordem lógica. Um indicador de progresso mostra as etapas para concluir a configuração. Siga as etapas para acessar o modelo da cadeia de ferramentas de CI.
- No console IBM Cloud, clique no ícone Menu
do menu > Automação da plataforma > Cadeias de ferramentas.
- Na página Cadeias de ferramentas, clique em Criar cadeia de ferramentas.
- Clique no bloco CD-Develop with DevSecOps practices.
Definir as configurações da cadeia de ferramentas de CI
A página Bem-vindos resume a finalidade da cadeia de ferramentas, juntamente com indicadores para a documentação e materiais relacionados.
-
Clique em Iniciar.
-
Digite um Nome da cadeia de ferramentas em sua cadeia de ferramentas para a mesma região e grupo de recursos no IBM Cloud. Certifique-se de que o nome da cadeia de ferramentas seja exclusivo dentro de suas cadeias de ferramentas para a mesma região e grupo de recursos no IBM Cloud.
-
Selecione uma região na lista suspensa.
A região da cadeia de ferramentas pode ser diferente da região de cluster e registro.
-
Selecione um grupo de recursos na lista suspensa.
-
Clique em Continuar.
Será possível avançar para a próxima etapa apenas quando a configuração para a etapa atual for completa e válida. Você sempre pode clicar em Voltar para visualizar as etapas anteriores do instalador guiado. O instalador da cadeia de ferramentas retém todas as definições de configuração das etapas sucessivas.
Algumas etapas incluem um botão de alternância Alternar para configuração avançada. Por padrão, essas etapas apresentam a configuração mínima. No entanto, os usuários avançados que precisam de um controle mais refinado podem clicar no botão Alternar para configuração avançada para revelar as opções da integração subjacente.
Configurar as integrações da ferramenta de CD
A integração de ferramentas de CD abrange a configuração das várias integrações de ferramentas e serviços que a cadeia de ferramentas de CD usa. Se você usar o modelo de cadeia de ferramentas de pipeline de CI para configurar seu processo de CI, consulte sua cadeia de ferramentas de CI e copie os nomes dos repositórios usados nessa cadeia de ferramentas.
Repositórios relacionados ao aplicativo
Se você quiser configurar sua cadeia de ferramentas de CI do zero, configure esses repositórios durante a criação da cadeia de ferramentas de CI.
- Inventário
- As informações de implantação são rastreadas usando esse repositório. Para cada execução bem-sucedida do pipeline de CI, o pipeline de CD cria uma nova ramificação nomeada como o número CR criado e mescla com o mestre após a conclusão da
implantação. Por exemplo,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-inventory. - Problemas
- Armazena os problemas sobre incidentes que ocorrem durante o processo de compilação e implantação. Por exemplo,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-issues. - Evidência
- Coleta todas as evidências brutas de conformidade que pertencem ao aplicativo. Por exemplo,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-evidence. - Cadeia de ferramentas
- As definições de pipeline do tekton, como pipelines, acionadores e ouvintes, são armazenadas nesse repositório. Por exemplo,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-toolchain.
Depois de capturar os nomes dos repositórios da cadeia de ferramentas de CI, prossiga com Guided Setup para iniciar a criação da cadeia de ferramentas de CD. Durante o processo de configuração, para cada repositório, você pode
fornecer o endereço URL a um repositório IBM hospedado Git Repos and Issue Tracking existente. Atualmente, a cadeia de ferramentas suporta a criação apenas de repositórios Git Repos and Issue Tracking. As versões futuras oferecem suporte
para a criação de repositórios com GitHub, GitHub Enterprise (GHE) e outros provedores de SCM.
Inventário
O repositório de inventários registra detalhes de artefatos que são construídos pelas cadeias de ferramentas de CI. O comportamento padrão da cadeia de ferramentas é Usar inventário existente para vincular um repositório de inventário existente à cadeia de ferramentas. No momento, a cadeia de ferramentas oferece suporte à vinculação somente aos repositórios Git Repos and Issue Tracking existentes. Para obter mais informações, consulte Repositórios relacionados a aplicativos.
- Você pode aceitar a configuração padrão fornecida no modelo.
- Clique em Continuar.
Problemas
O repositório de problemas registra os problemas encontrados enquanto o pipeline de CI está em execução.
- Você pode aceitar a configuração padrão fornecida no modelo.
- Clique em Continuar
Configuração do pipeline
O repositório de configuração do pipeline contém arquivos YAML e scripts necessários para implantação, teste e outras tarefas personalizadas. Para obter mais informações sobre Git, consulte Configurando seus Git Repos and Issue Tracking. Para obter mais informações sobre scripts personalizáveis, consulte Scripts personalizados.
-
Aceite as configurações padrão de Provedor de origem e Criar um novo repositório de configuração de implantação.
A cadeia de ferramentas clona a amostra hello-compliance-deployment na sua organização Git. Para obter mais informações sobre repositórios Git, consulte Configurando seu Git Repos and Issue Tracking. Para obter mais informações sobre scripts personalizáveis, consulte Scripts personalizados.
-
Digite um nome para o novo repositório.
-
Clique em Continuar.
Segredos
Várias ferramentas nesse conjunto de ferramentas e, possivelmente, em seus scripts personalizáveis, exigem segredos para acessar recursos privilegiados. Uma chave de API do IBM Cloud é um exemplo de tal segredo. Armazene esses segredos de forma segura em uma ferramenta de gerenciamento de segredos, como IBM Key Protect for IBM Cloud, IBM Cloud® Secrets Manager, ou HashiCorp Vault. A ferramenta de gerenciamento de segredos pode ser integrada à cadeia de ferramentas para que você possa consultar facilmente os segredos no pipeline do Tekton.
Você pode usar o método de AppRole método de autenticação para ler valores secretos.
- Este tutorial usa IBM Cloud® Secrets Manager como o cofre para segredos. Os campos Região, Grupo de recursos e Nome do serviço são preenchidos automaticamente com base nas opções disponíveis. Clique nos indicadores suspensos para ver as outras opções.
- Digite seu Secrets Manager nome da instância.
- Selecione o tipo de autorização na lista suspensa.
- Clique em Continuar.
Armazenamento de evidência
O armário de evidências armazena todas as evidências e artefatos gerados pelo pipeline de CI do DevSecOps.
- Selecione um repositório de armário de evidências existente.
- Selecione o Repositório URL que foi criado quando você configurou a cadeia de ferramentas de integração contínua (CI). Para obter mais informações sobre o armazenamento de evidências, consulte Evidência.
- Alterne o controle deslizante do compartimento IBM Cloud Object Storage para armazenar todas as evidências no compartimento IBM Cloud Object Storage.
- Clique em Continuar.
Nuvem Object Storage Bucket
Você deve ter uma instância do IBM Cloud Object Storage e um bucket para servir como um armazenamento de evidências de conformidade.
- Os campos Cloud Object Storage instance, Bucket name e Cloud Object Storage endpoint são preenchidos automaticamente.
- Digite sua chave da API de ID do serviço.
- Preferencialmente: Uma chave existente pode ser importada de um cofre de segredos clicando no ícone da chave.
- Uma chave existente pode ser copiada e colada.
- Clique em Continuar.
O campo endpoint é opcional. Recomenda-se selecionar ou fornecer o ponto de extremidade durante a configuração da cadeia de ferramentas ou durante a execução do pipeline.
Implementar
Configure o destino do inventário e o cluster Kubernetes onde o aplicativo está implantado:
-
O padrão Nome do aplicativo é
hello-compliance-app. -
Digite sua chave de API IBM Cloud. A chave da API é usada para interagir com a ferramenta IBM Cloud CLI em várias tarefas.
- Preferencialmente: Uma chave existente pode ser importada de um cofre de segredos clicando no ícone da chave.
- Uma chave existente pode ser copiada e colada.
- Uma nova chave pode ser criada a partir daqui, clicando em New +.
A chave de API recém-gerada pode ser salva imediatamente em um cofre de segredos.
-
Se a chave da API for válida e tiver acesso suficiente, o Container Registry, Container Registry namespace, Dev cluster region, Resource group, Cluster name, Cluster namespace são preenchidos automaticamente. Você pode alterar qualquer um desses campos para que correspondam à sua configuração.
-
Clique em Continuar.
Chave de API da IBM Cloud
A chave de API é usada para interagir com a ferramenta ibmcloud CLI em várias tarefas.
- Uma chave de API existente pode ser importada de uma instância de provedor de segredos existente criada como pré-requisitos (recomendado)
- Uma chave existente pode ser copiada e colada (não recomendado)
- Uma nova chave pode ser criada clicando em New +. Gere um
api-keyse você não tiver um. A chave de API recém-gerada pode ser imediatamente salva em uma instância de proteção de chaves existente.
Quando o campo API Key é preenchido, os campos relacionados ao registro e ao cluster são preenchidos automaticamente.
Ramificações de origem e destino do inventário
- Aceite a opção Cluster único (implantação baseada em push) para implantar seu aplicativo em destinos como Instância de servidor virtual ou personalizar o processo de implantação, use a opção Custom.
- Clique em Continuar para exibir a página do cluster.
- Insira o campo IBM Cloud API Key para interagir com a ferramenta CLI em várias tarefas. Observação Uma chave existente pode ser importada de um cofre de segredos clicando no ícone da chave.
- Verifique seus campos Região do cluster, Grupo de recursos, Nome do cluster e Namespace do cluster campos em que o cluster de destino é criado.
- Clique em Continuar.
Gerenciamento de solicitação de mudança
- Selecione o repositório IBM Cloud hospedado Git Repos and Issue Tracking para gerenciar as solicitações de alteração. Para obter mais informações, consulte Automatizando o gerenciamento de mudanças.
- Clique em Continuar.
DevOps Insights cadeia de ferramentas
Vincule uma instância existente de DevOps Insights de outra cadeia de ferramentas a esse pipeline, de modo que todos os registros de compilação, implantação e teste dos pipelines de cadeia de ferramentas de CI e CD possam ser coletados no mesmo local.
A cadeia de ferramentas de CD pode publicar os registros de implantação em uma instância existente de DevOps Insights. Para ativar esse recurso, forneça o ID da cadeia de ferramentas que contém a instância existente de DevOps Insights selecionando na lista DevOps Insights o ID da cadeia de ferramentas.
- Forneça sua DevOps Insights IBM Cloud chave de API.
- Aceitar a configuração padrão.
- Verifique sua Região, Grupo de recursos, DevOps Insights ID da cadeia de ferramentas, e DevOps Insights ambiente de destino campos em que seu ambiente de destino é criado.
- Clique em Continuar.
Link para a cadeia de ferramentas DevOps Insights existente
DevOps Insights pode ser incluído opcionalmente na cadeia de ferramentas criada e, após cada verificação de conformidade, as evidências são publicadas. A cadeia de ferramentas pode usar uma instância existente do DevOps Insights para publicar os registros de implantação em insights. Você pode vincular a integração DevOps Insights de outra cadeia de ferramentas fornecendo o ID da integração.
- Aceite a Cadeia de ferramentas atual.
- Clique em Continuar.
É possível copiar o ID da Cadeia de Ferramentas na URL de sua cadeia de ferramentas. O URL de uma cadeia de ferramentas segue este padrão: https://cloud.ibm.com/devops/toolchains/<toolchain-ID-comes-here>?env_id=ibm:yp:us-south.
Se o endereço URL for: https://cloud.ibm.com/devops/toolchains/aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee?env_id=ibm:yp:us-south, a ID da cadeia de ferramentas será: aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee. Inclua apenas o ID, não o endereço completo URL.
Você também pode definir um ambiente de destino para as interações do DevOps Insights. Esse parâmetro é opcional e é usado em vez do ambiente de destino do inventário.
Ferramentas opcionais
Slack
Configure o Slack para receber notificações sobre suas solicitações pull ou eventos de pipeline de CI. Você também pode adicionar a ferramenta Slack após a criação da cadeia de ferramentas.
- Digite seu webhook do Slack. Para obter mais informações, consulte Slack webhook.
- Insira seu canal de folga para postar a mensagem.
- Digite o nome da equipe de reserva. Por exemplo, se a sua equipe URL
https://team.slack.com, o nome da equipe éteam. - Escolher os eventos para os quais você deseja receber notificações para Notificações automatizadas do Slack.
- Clique em Continuar.
Trabalhador privado
A integração da ferramenta de trabalhador privado do pipeline de entrega se conecta a um ou mais trabalhadores privados que podem executar cargas de trabalho do pipeline de entrega isoladamente. Para obter mais informações, consulte Trabalhando com trabalhadores privados.
- Digite um Nome para o trabalhador privado do pipeline de entrega.
- Digite sua chave da API de ID do serviço.
- Preferencialmente: Uma chave existente pode ser importada de um cofre de segredos clicando no ícone da chave.
- Uma chave existente pode ser copiada e colada.
- Clique em Continuar.
Crie a cadeia de ferramentas de CD
- Na página Resumo, clique em Criar.
- Aguarde a criação da cadeia de ferramentas para visualizar a página de resumo, conforme mostrado na captura de tela. Isso pode levar alguns minutos.
É possível configurar as integrações individuais da cadeia de ferramentas após a criação do pipeline.
Explore a cadeia de ferramentas de CD
Execute o pipeline de promoção
Certifique-se de que o pipeline de CI foi executado com êxito antes de executar o pipeline de promoção.
-
Clique em cd-pipeline.
-
Clique em Run para o pipeline Manual Promotion Trigger.
-
Clique em Run (Executar ) para acionar o pipeline.
-
Clique no pipeline Manual Promotion Trigger >
#1promotion-pipelinerun. Aguarde a conclusão da execução do pipeline de promoção e verifique o registro de execução.O pipeline de promoção cria uma pull request com o conteúdo do inventário no ambiente de origem do inventário, como a ramificação
master, direcionada à ramificação do ambiente de destino do inventário, comostagingouproduction. -
Depois que o pipeline de promoção for concluído com êxito, o registro de tarefas
promotefornecerá um link para a pull request no repositório do inventário. O nome do pull request tem o formatopromote <inventory source environment> to <inventory target environment>, por exemplo,promote master to prod -
Abra o pull request em seu navegador com o link fornecido no registro. Preencha os detalhes nas seções a seguir:
- Prioridade: (obrigatório) Definido como
Critical,High,Moderate,LowouPlanning. - Change Request assignee: (obrigatório)
Email-IDdo cessionário. - Descrição adicional: Descrição sobre as alterações no aplicativo.
- Finalidade/objetivo: finalidade das alterações feitas no aplicativo.
- Explicação do impacto: Impacto da alteração no comportamento ou no ambiente do aplicativo.
- Plano de retrocesso: etapas para retroceder se houver uma falha na implementação.
- Prioridade: (obrigatório) Definido como
-
Preencha os campos na solicitação de pull e clique em salvar.
-
Adicione o rótulo
EMERGENCYao seu pull request se alguma verificação de conformidade no CI falhar e você quiser continuar com a implantação -
Faça o merge do pull request de Git Repos and Issue Tracking.
Os detalhes da pull request são usados durante o pipeline de CD que é executado para criar e atualizar o repositório de solicitações de alteração.
Execute o pipeline de entrega contínua
Executar pipeline de promoção
-
Certifique-se de que o pipeline de CI foi executado com êxito antes de executar o
Promotion Pipeline. -
O pipeline de promoção cria um
Pull Requestcom o conteúdo do inventário no ambiente de origem do inventário. Por exemplo,masterramo que tem como alvo o ramo do ambiente de destino do inventário, por exemplo,stagingouprod. Uma ramificação intermediária para o PR é criada, a qual pode ser descartada após a mesclagem do PR.
' Executando o pipeline de promoção -
Depois que o
Promotion Pipelinefor concluído com êxito, a tarefapromotefornecerá um link para oPull Requestmencionado anteriormente no repositório do inventário. O nome da pull request está no seguinte formato:promote <Inventory Source Environment> to <Inventory Target Environment> -
Abra a
Pull Requestem seu navegador com o link fornecido no log. Preencha as seções da seguinte forma:- Prioridade: (obrigatório) um de Crítico, Alto, Moderado, Baixo, Planejamento
- Designado da solicitação de mudança: (obrigatório) email-id do designado
- Descrição adicional: descrição sobre as mudanças no aplicativo
- Propósito: propósito das mudanças que são feitas no aplicativo
- Explicação do impacto: impacto da mudança no comportamento ou no ambiente do aplicativo
- Plano de backout: Etapas para fazer backout se a implementação falhar
-
Conclua os campos na
Pull Requeste salve. -
Mesclar o
Pull Requestdo Git Repos and Issue Tracking.
Os detalhes do site Pull Request são usados pelo pipeline de CD para criar uma solicitação de alteração no repositório de gerenciamento de solicitações de alteração durante a execução do pipeline de CD.
Execute o pipeline de entrega contínua
Você pode acionar um pipeline de CD de forma manual ou automática. Você pode acionar o pipeline de CD manualmente a qualquer momento, mas, se não houver alterações desde a última implantação bem-sucedida, o pipeline de CD será interrompido
antecipadamente, pois não há nada para implantar. Um Git Repos and Issue Tracking acionador é configurado para acionar o pipeline automático de CD, mas é desativado por padrão e pode ser ativado após a primeira promotion.You pode adicionar
e usar force-redeploy variável para executar novamente o CD sem alterações no código. Veja a captura de tela bem-sucedida do pipeline de
CD do DevSecOps.
Também é possível acionar o CD Pipeline manualmente a qualquer momento, mas se não houver mudanças desde a última implementação bem-sucedida, o CD Pipeline não implementará nada novo.
Uma execução bem-sucedida do pipeline de CD é semelhante a isto:
Fluxo das tarefas no Pipeline de CD:
Após uma execução bem-sucedida do pipeline de CD, você pode encontrar o aplicativo de amostra que está sendo executado no namespace prod. A URL do app pode ser localizada sob a subetapa run stage da etapa prod deployment da execução do Pipeline de CD. Use essa URL para verificar se o app está em execução.