Integração com o Github

O Github oferece o recurso de configurar um webhook que você pode usar para acionar um pipeline de integração contínua e entrega contínua (CI/CD) automatizado e seguro hospedado em sua ferramenta CI/CD preferida. Quando um novo instantâneo do seu projeto de fluxo de trabalho é criado, você pode acionar o webhook do Github enviando um descritor de arquivo do projeto (no formato JSON) para um repositório Git configurado, o que, por sua vez, aciona o pipeline de CI/CD.

Antes de iniciar

Certifique-se de que seu ambiente possa acessar o endpoint configurado do Github usando uma política de rede para abrir o acesso externo.

Procedimento

Complete a configuração a seguir para enviar o arquivo descritor de projeto da versão do seu fluxo de trabalho para o Github.

Para criação de fluxo de trabalho e criação de Workflow Process Service :

  1. Crie um arquivo de configuração " custom.xml para o alias de autenticação, que tem o seu nome de usuário Git e o token de acesso.
    <?xml version="1.0" encoding="UTF-8"?>
    <server>
       <authData id="Git-J2C-Auth-Alias-Name" user="your_user_name" password="your_access_token"/>
    </server>
  2. Crie um segredo usando seu " custom.xml:
    kubectl create secret generic your-custom-secret-name --from-file=sensitiveCustom.xml=./custom.xml
  3. Adicione a seguinte configuração ao seu arquivo de recurso personalizado (CR):
    bastudio_configuration:
        bastudio_custom_xml: |+
          <properties>
                  <server>
                    <git-configuration  merge="replace">
                      <git-endpoint-url>https://api.github.com/repos/user1/bawgitrepo</git-endpoint-url>
                      <git-auth-alias-name>Git-J2C-Auth-Alias-Name</git-auth-alias-name>
                    </git-configuration>
                  </server>
          </properties>
        custom_secret_name: your-custom-secret-name
    em que <git-endpoint-url> é o URL da API REST do seu repositório Git. O valor deve ser "api.github.com" em vez de "github.com".
  4. Se o SSL estiver ativado para " Git, importe o certificado TLS de " Git para " Cloud Pak for Business Automation e atualize seu arquivo CR.
    oc create secret generic git-ssl-secret --from-file=tls.crt=/root/gitSSL.cert
    bastudio_configuration:
        tls:
          tlsTrustList: [git-ssl-secret]
    Essa etapa não será necessária se o site Git for assinado com uma autoridade de certificação (CA) conhecida.
  5. Se você tiver aplicado políticas de rede à sua implantação para restringir o acesso à Internet, deverá criar uma política de rede para garantir que o servidor de criação de fluxo de trabalho possa acessar o servidor externo Git. Crie uma política de rede para permitir que o servidor de criação de fluxo de trabalho se conecte ao servidor Git usando a porta Git. Aplique a política de rede da seguinte forma:
    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: "bas-allow-git"
    spec:
      podSelector:
        matchLabels:
          com.ibm.cp4a.networking/egress-external-app-component: 'BAS'
      policyTypes:
      - Egress
      egress:
      - to:
        - ipBlock:
            cidr:  # IP address your git server. 
      - ports:
        - protocol: TCP
          port: # Port of your git server.

    Aguarde até que o operador termine a reconciliação.

  6. Verifique a configuração:
    1. No pod bastudio, verifique " /opt/ibm/wlp/usr/servers/defaultServer/TeamWorksConfiguration.running.xml para ver que " <git-endpoint-url> e " <git-auth-alias-name> foram mesclados no arquivo.
    2. Além disso, verifique se o arquivo " /opt/ibm/wlp/usr/shared/resources/sensitive-custom/sensitiveCustom1.xml existe e tem o " <authData> do seu usuário e token Git.