Integración con Github

Github ofrece la posibilidad de configurar un webhook que puede utilizar para activar un canal automatizado y seguro de integración continua y entrega continua (CI/CD) alojado en su herramienta CI/CD preferida. Cuando se crea una nueva instantánea de su proyecto de flujo de trabajo, puede activar el webhook de Github enviando un descriptor de archivo del proyecto (en formato JSON) a un repositorio Git configurado, que a su vez activa el canal de CI/CD.

Antes de empezar

Asegúrese de que su entorno puede acceder al punto final de Github configurado utilizando una política de red para abrir el acceso externo.

Procedimiento

Complete la siguiente configuración para enviar el archivo descriptor del proyecto de la versión de su flujo de trabajo a Github.

Para la creación de flujos de trabajo y la creación de Workflow Process Service :

  1. Crea un archivo de configuración ' custom.xml ' para el alias de autenticación, que contenga tu nombre de usuario Git y tu token de acceso.
    <?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. Crea un secreto utilizando tu ' custom.xml:
    kubectl create secret generic your-custom-secret-name --from-file=sensitiveCustom.xml=./custom.xml
  3. Añada la siguiente configuración a su archivo de recursos personalizados (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
    donde <git-endpoint-url> es la URL la API REST de su repositorio Git. El valor debería ser "api.github.com" en lugar de "github.com".
  4. Si SSL está activado para Git, importe el certificado TLS Git a Cloud Pak for Business Automation y actualice su archivo CR.
    oc create secret generic git-ssl-secret --from-file=tls.crt=/root/gitSSL.cert
    bastudio_configuration:
        tls:
          tlsTrustList: [git-ssl-secret]
    Este paso no es necesario si el sitio web Git está firmado con una autoridad de certificación (CA) conocida.
  5. Si ha aplicado políticas de red a su implantación para tener restringido el acceso a Internet, debe crear una política de red para garantizar que el servidor de creación de flujos de trabajo pueda acceder al servidor externo Git. Cree una política de red para permitir que el servidor de creación de flujos de trabajo se conecte al servidor Git utilizando el puerto Git. Aplique la política de red como se indica a continuación:
    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.

    Espere a que el operador termine la conciliación.

  6. Verifique la configuración:
    1. En el pod bastudio, compruebe en ' /opt/ibm/wlp/usr/servers/defaultServer/TeamWorksConfiguration.running.xml ' que ' <git-endpoint-url> y ' <git-auth-alias-name> están fusionados en el archivo.
    2. Comprueba también que el archivo ' /opt/ibm/wlp/usr/shared/resources/sensitive-custom/sensitiveCustom1.xml ' existe y tiene el ' <authData> ' de tu usuario y token Git.