Overview

Overview of the architecture, concepts and motivations for Jenkins X 3.x

Jenkins X 3.x creates clearer separation of concerns between conceptual areas and releasable components.

Demo

The following demo walks you through an overview of the architecture:

Microservices

Jenkins X uses the following microservices by namespace.

Note that if you have a working Jenkins X installation you can browse all the actual kubernetes resources used across each namespace via the config-root/namespaces/$namespace/$chartName folder in your cluster git repository.

jx-git-operator

Contains the git operator from jenkins-x/git-operator microservice and the associated boot jobs.

jx

Contains the main development services of Jenkins X:

  • jx-build-controller watches for PipelineRun resources and creates/updates the associated PipelineActivity resources used by jx get build log, octant and the pipelines visualizer
  • jx-pipelines-visualizer visualises PipelineActivity resources and the associated build logs in a read only UI
  • jx-preview-gc-jobs periodically garbage collects Preview resources and their associated preview environments created by jx preview
  • jxboot-helmfile-resources-gcactivities periodically garbage collects old and completed PipelineActivity resources
  • jxboot-helmfile-resources-gcpods periodically garbage collects completed Pods
  • jx-kh-check supports additional kuberhealthy based health checks for Jenkins X specific resources

lighthouse

jenkins-x/lighthouse creates tekton pipelines and triggers ChatOps on Pull Requests. Its made up of the following components:

  • lighthouse-webhooks converts webhooks from your git provider into LighthouseJob custom resources
  • lighthouse-tekton-controller converts LighthouseJob custom resources into tekton PipelineRun resources (the tekton controller converts PipelineRun resources into kubernetes Pods
  • lighthouse-foghorn watches the execution of PipelineRun resources triggered by lighthouse and updates the pipeline status in git so that you see pipelines start, complete or fail on your git provider along with having links the pipelines visualizer on each context on a Pull Request
  • lighthouse-keeper looks for open Pull Requests with green pipelines and the necessary approve labels to be able to auto merge
  • lighthouse-gc-jobs periodically garbage collects LighthouseJob resources and their associated resources (e.g. PipelineRun and Pods

the following are optional extras:

  • bucket repository a lightweight cloud native artifact, chart repository and maven proxy that can be configured to use cloud storage. It’s a lightweight cloud native alternative to nexus
  • chart museum an optional chart repository
  • nexus if used as an artifact repository and maven proxy

kuberhealthy

Contains the kuberhealthy service to support health and improve observability which used by jx health

nginx

Contains the nginx-ingress provider if enabled

jx-vault

the following are optional extras if not using your cloud providers native secret manager:

secret-infra

  • kubernetes-external-secrets contains the external-secrets/kubernetes-external-secrets service for handling ExternalSecrets. See how we use secrets)
  • pusher-wave contains the pusher/wave service for performing a rolling upgrade of any microservice which consumes Secret resources from either vault or a cloud providers secret store and the secrets change in the underlying store

tekton-pipelines

Contains the tekton pipelines controllers


Projects

The open source projects used by Jenkins X

Source

The location of the various source code repositories


Last modified June 15, 2021: chore: Corrected typo on index.md (4bb813960b)