To help developers more easily customize Elastic Path Commerce, CloudOps for Azure provides or provisions the build infrastructure required to:
- Build Elastic Path Commerce artifacts, including the deployment package
- Store the built artifacts in a Maven repository
- Convert the deployment package into a set of Docker images
- Store the Docker 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 Azure does not provide or provision a Git server.
Jenkins Server and Agents
The Jenkins server and agents are run inside of the Kubernetes cluster and are creating as part of the bootstrap process.
The settings for the deployment are in a YAML file in the cloudops-for-azure repo. The deployment is based on the Jenkins Helm chart.
Jenkins pipelines are defined in files named
Jenkinsfile in the cloudops-for-azure repository. When the Jenkins server is started, it automatically creates the pipelines using a Jobs DSL Groovy script.
The server uses the Jenkins Kubernetes plugin to provision Jenkins agent pods as needed.
Docker images are built inside of the agents using img. This tool allows you to build Docker images without requiring access to a Docker daemon. By avoiding use of the Docker daemon that Kubernetes runs on top of, you can avoid competing for resources with Kubernetes managed containers.
The Nexus server is created during the bootstrap process.
The server is based on the official image on Docker Hub.
The deployment is defined using a Kubernetes Resource YAML file in the cloudops-for-azure repo.
Azure Container Registry (ACR) Server
The Azure Container Registry (ACR) server is provisioned during the bootstrap process.
More information on the ACR Server can be found at https://azure.microsoft.com/en-ca/services/container-registry/