Configuração da integração com CI/CD do Jenkins

A configuração da integração com CI/CD do Jenkins inclui os seguintes passos:

  1. Autorização de CI/CD do Jenkins no registro de imagens do fabricante do Kaspersky Container Security. Para fazer isso, na estação de trabalho do operador do cluster, prepare um hash codificado em Base64 dos dados de autorização executando o seguinte comando:

    printf "login:senha" | openssl base64 -A

    em que login e senha são o nome de usuário e a senha de uma conta no registro de imagens do fabricante do Kaspersky Container Security.

  2. Autorização da API do Kaspersky Container Security. Para executar a autorização, conclua os seguintes passos:
    1. Copie o token de API na página My profile.
    2. Especifique o valor do token de API copiado na variável API_TOKEN do arquivo de configuração Jenkinsfile.
  3. Autenticação do servidor que recebe os dados no CI/CD usando o certificado CA do controlador Ingress. Para executar a autenticação, no arquivo de configuração Jenkinsfile, especifique uma das seguintes variáveis:
    1. -e API_CA_CERT=${KCS_CA_CERT} significa que a autenticação é executada e o verificador iniciado no CI/CD consegue garantir que o servidor de recebimento é autêntico.
    2. -e SKIP_API_SERVER_VALIDATION=true significa que a autenticação do servidor de recebimento usando o certificado CA do controlador Ingress não é executada.
  4. Criação de variáveis de ambiente do Jenkins.

    Para criar variáveis de ambiente, inclua as seguintes linhas para Jenkinsfile:

    1. Inclua informações sobre o registro de contêineres em que o verificador está localizado, da seguinte maneira:

      LOGIN: o nome da conta no registro de verificadores

      PASS: a senha do registro de verificadores

    2. Ao configurar a verificação para um repositório privado, defina os seguintes dados de autorização para garantir que o verificador tenha acesso a uma imagem:

      COMPANY_EXT_REGISTRY_USERNAME: o nome da conta no registro da imagem verificada

      COMPANY_EXT_REGISTRY_PASSWORD: a senha do registro da imagem sendo verificada

    3. Para usar um certificado para conexão segura com o registro, especifique os dados do certificado na variável de ambiente COMPANY_EXT_REGISTRY_TLS_CERT como uma string no formato .PEM:

      -----BEGIN CERTIFICATE-----\n... <detalhes do certificado> ...\n-----END CERTIFICATE-----.

    4. Especifique as seguintes variáveis para comunicação usando um servidor proxy:

      HTTP_PROXY: <servidor proxy para solicitações HTTP>

      HTTPS_PROXY<servidor proxy para solicitações HTTPS>

      NO_PROXY: <domínios ou máscaras de domínio correspondentes a serem excluídos do proxy>

  5. Inclusão de informações para inicializar o verificador. As informações para inicializar o verificador que contém bancos de dados de vulnerabilidades e outros objetos maliciosos são adicionadas no arquivo de configuração Jenkinsfile, no formato de um pipeline declarativo ou com script.

    Exemplo de informações para a inicialização do verificador no formato de um pipeline declarativo

    Exemplo de dados para a inicialização de um verificador no formato de um pipeline com script

  6. Geração de artefatos para download.

    É possível gerar um artefato para download em formato .HTML ou .JSON para receber os resultados da verificação. Especifique um formato de artefato em --stout da seguinte maneira:

    pipeline {

    agent any

    stages {

    stage('run scanner') {

    steps {

    sh 'docker login -u ${LOGIN} -p ${PASS} company.example.com'

    sh 'docker run -e API_BASE_URL=https://kcs.int.company.com -e SKIP_API_SERVER_VALIDATION=true -e API_TOKEN=${API_TOKEN} -e COMPANY_EXT_REGISTRY_USERNAME=${COMPANY_EXT_REGISTRY_USERNAME} -e COMPANY_EXT_REGISTRY_PASSWORD=${COMPANY_EXT_REGISTRY_PASSWORD} company.example.com:5050/company/kcs/scanner:v2.1.1-lite jfrog.company.com/demo-kcs/bad:bad-project-test --html --stdout > result.html'

    }

    }

    stage('archive') {

    steps {

    archiveArtifacts artifacts: 'result.html'

    }

    }

    }

    }

    Para gerar um artefato .JSON, reescreva a linha --html --stdout> result.html' no exemplo acima da seguinte maneira:

    --stdout > result.json',

    e na linha archiveArtifacts artifacts, especifique o nome do arquivo no formato definido: 'result.json'.

    Os resultados das verificações podem ser obtidos no formato especificado por você, além de visualizados na seção ResourcesCI/CD.

Topo da página