Build Infrastructure
To help developers more easily customize Self Managed Commerce, CloudOps for Kubernetes provisions the build infrastructure required to:
- Build Self Managed Commerce artifacts, including the deployment package
- Store the built artifacts in a Maven repository
- Cache external Eclipse P2 dependencies used by Commerce Manager builds
- Convert the deployment package into a set of container images
- Store the container images in a Docker Registry compatible service
In the following diagram, you can see the relationship between the parts of the build infrastructure.
note
CloudOps for Kubernetes does not provision a Git server.
Jenkins Server and Agents
The Jenkins server and agents are run inside of the Kubernetes cluster and are created as part of the initial setup process.
The settings for the deployment are defined in the Terraform configuration files in the CloudOps for Kubernetes repository. The deployment is based on the Jenkins Helm chart.
In the CloudOps for Kubernetes repository, Jenkins pipelines are defined in files named Jenkinsfile. When the Jenkins server starts, it automatically creates the pipelines using a Jobs Domain Specific Language (DSL) Groovy script.
The server uses the Jenkins Kubernetes plugin to provision Jenkins agent pods as needed.
Eclipse P2 Proxy Service
CloudOps for Kubernetes can deploy an internal Eclipse P2 caching proxy service that runs in the Kubernetes cluster. When deployed, this service is used by Jenkins build agents when Eclipse P2 and Eclipse Business Intelligence and Reporting Tools (BIRT) repositories are enabled through build configuration.
The proxy service caches content from download.eclipse.org on a persistent volume and serves subsequent requests from the local cache. This reduces repeated external Eclipse downloads across builds while preserving compatibility with existing build tooling.
The Eclipse P2 proxy is separate from the Nexus Maven repository manager. Nexus remains responsible for Maven artifacts, while the Eclipse P2 proxy handles Eclipse P2 and BIRT repository traffic.
For an overview of why and when to enable this feature and how build jobs use it, see Eclipse P2 Caching Proxy.
For operational guidance, including cache verification and volume inspection, see Manage Eclipse P2 Proxy.
Jenkins Plugins
The Jenkins server uses third-party plugins. These plugins are installed with fixed versions and are upgraded to the latest version without known issues with every CloudOps release.
For a complete list of the plugins installed in the Jenkins server, see the jenkins-helm-values.yaml.tmpl file.
Nexus Server
The Nexus server is created during the initial setup process.
The server is based on the official image on Docker Hub.
The deployment is defined using a Kubernetes Deployment, which is managed by Terraform, in the CloudOps for Kubernetes repository.
For more information about the maintenance of artifacts in the Nexus server, see the Manage Nexus Artifacts documentation.
Docker Registry service
Amazon Elastic Container Registry (ECR) repositories are provisioned during the initial setup process. For more information about ECR, see the Amazon Elastic Container Registry documentation.