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 :
- 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>
- Crie um segredo usando seu " custom.xml:
kubectl create secret generic your-custom-secret-name --from-file=sensitiveCustom.xml=./custom.xml
- 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".
- 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.
- 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.
- Verifique a configuração:
- 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.
- 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.