Pipelines de CI / CD abrangendo vários clusters OpenShift

Tradicionalmente, os pipelines de CI / CD foram construídos sobre servidores físicos e máquinas virtuais. Plataformas de contêiner como Kubernetes e OpenShift chegaram a esse cenário muito mais tarde. No entanto, à medida que mais e mais cargas de trabalho são migradas para a plataforma OpenShift, também o são os pipelines CI / CD, e os trabalhos de pipeline são cada vez mais executados dentro de contêineres em execução no cluster.





Esta postagem é uma tradução do blog de nosso amigo Ales Nosik, autor do blog que se autodenomina ("Ajudando a navegar pelo mundo do Kubernetes"). O lema de Ales: "Desenvolvedor e arquiteto de software apaixonado por novas tecnologias, código aberto e cultura DevOps. Tornando o mundo um lugar melhor com software."





Você pode fazer qualquer pergunta depois de ler Ales nos comentários. Bem, e onde sem ele - Ales quer apresentar para as perguntas mais complicadas um conjunto de mochileiros com um mapa de rotas da Red Hat. E um chapéu.





No mundo real, as empresas não estão limitadas a um único cluster OpenShift, mas possuem vários ao mesmo tempo. Por quê? Para executar cargas de trabalho em várias nuvens públicas e em suas próprias instalações de TI. Ou - se a organização permanecer fiel a um único provedor de plataforma - para operar com eficácia em diferentes regiões do mundo. E às vezes é necessário ter vários clusters em uma região, por exemplo, se houver várias zonas de segurança, cada uma das quais deve ter seu próprio cluster.





, OpenShift. , CI/CD , , .





CI/CD- Jenkins

Jenkins – CI/CD. - Hudson…, , . , Jenkins, OpenShift? , , . , Jenkins ( -Jenkins), OpenShift. -Jenkins , -Jenkins, . OpenShift (Dev, Test Prod), :





Jenkins OpenShift Kubernetes-plugin, -Jenkins worker- . , , . :





stage ('Build') {
  node ("dev") {
    // running on dev cluster
  }
}

stage ('Test') {
  node ("test") {
    // running on test cluster
  }
}

stage ('Prod') {
  node ("prod") {
    // running on prod cluster
  }
}
      
      



OpenShift Jenkins, openshift. -Jenkins, worker-pod’ . , -Jenkins OpenShift, . Jenkins- worker-pod -Jenkins. , -Jenkins worker-, OpenShift.





, . -Jenkins worker- pod- OpenShift, worker- . OpenShift , Jenkins- worker. Jenkins, Jenkins- , .





Kubernetes- Tekton

, CI/CD Tekton. Jenkins, Tekton – Kubernetes- : Kubernetes Kubernetes. Tekton – . , OpenShift?





Tekton. , execute-remote-pipeline, Tekton-, OpenShift. . Tekton OpenShift . , , OpenShift (Dev, Test Prod):





Dev. Dev Test, , , Prod. :





$ tkn pipeline start dev --showlog
Pipelinerun started: dev-run-bd5fs
Waiting for logs to be available...
[execute-remote-pipeline : execute-remote-pipeline-step] Logged into "https://api.cluster-affc.sandbox1480.opentlc.com:6443" as "system:serviceaccount:test-pipeline:pipeline-starter" using the token provided.
[execute-remote-pipeline : execute-remote-pipeline-step]
[execute-remote-pipeline : execute-remote-pipeline-step] You have one project on this server: "test-pipeline"
[execute-remote-pipeline : execute-remote-pipeline-step]
[execute-remote-pipeline : execute-remote-pipeline-step] Using project "test-pipeline".
[execute-remote-pipeline : execute-remote-pipeline-step] Welcome! See 'oc help' to get started.
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step] Logged into "https://api.cluster-affc.sandbox1480.opentlc.com:6443" as "system:serviceaccount:prod-pipeline:pipeline-starter" using the token provided.
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step]
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step] You have one project on this server: "prod-pipeline"
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step]
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step] Using project "prod-pipeline".
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step] Welcome! See 'oc help' to get started.
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step] [prod : prod-step] Running on prod cluster
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step]
[execute-remote-pipeline : execute-remote-pipeline-step]
      
      



, Tekton. – .





, . Kubernetes- Tekton , RBAC. , , (, Test ), (Prod), , (Prod). , , (Prod), , (Test). , Prod Test- -, Test Prod.





, , Jenkins Tekton CI/CD, OpenShift, , .





, OpenShift, , -, .





 : Ales Nosek





13 Apache Airflow OpenShift, , .





  • 13 . OpenShift

    , OpenShift' .

    – .





  • 20 . OpenShift Virtualization: , serverless ,

    – OpenShift Virtualization.








All Articles