Operations Specification (ops-spec.json)
Self Managed Commerce has several third-party stack dependencies that are required to build and deploy the application services. Different releases of Self Managed Commerce have different stack requirements. The source code of the newest Self Managed Commerce releases includes a new machine-readable Operations Specification file, named ops-spec.json
, that contains the details of the build and deployment stacks required for that release. CloudOps for Kubernetes will read this file when it is found in the Self Managed Commerce source code, and will use it to determine which build and deployment stacks to use. If the file is not found in the Self Managed Commerce source code, CloudOps for Kubernetes will fall-back to a default Operations Specification file that is included in the CloudOps for Kubernetes source code.
File Specification
A complete description of the file format can be found in the EP Commerce Operations Specification (ops-spec.json) documentation.
File Locations
The latest releases of Self Managed Commerce include the Operations Specification file in the source code repository at devops/ops-spec/src/main/resources/ops-spec.json
.
note
The packaging processes for those releases of Self Managed Commerce will also include the Operations Specification file in the deployment package.
CloudOps for Kubernetes release 3.0
and newer includes a fall-back version of the Operations Specification file. This fall-back copy is included in the CloudOps for Kubernetes source code repository at devops/ops-spec.json
.
note
This file is read when an Operations Specification file is not found in the Self Managed Commerce source repository or in the Self Managed Commerce deployment package zip file.
Order of priority
The location from which the Operations Specification file is read depends upon the type of build operation.
Maven container
The Jenkins job build-jenkins-agents
reads the Operations Specification file when building the maven-agent
container to identify which Java and Maven versions to install in the container image, and specifically which binary packages to install.
- The process first looks for the
devops/ops-spec/src/main/resources/ops-spec.json
in the specifiedep-commerce
branch. - The process falls-back to and uses
devops/ops-spec.json
from thecloud-ops-kubernetes
branch.
Maven jobs
The Jenkins Maven jobs, including build-deployment-package
, run-cortex-system-tests
, run-recursive-commerce-tests
and run-select-commerce-tests
, read the Operations Specification file to determine which maven-agent
container image to use when building the Self Managed Commerce code and running the defined tests.
- The process first looks for the
devops/ops-spec/src/main/resources/ops-spec.json
in the specifiedep-commerce
branch. - The process falls-back to and uses
devops/ops-spec.json
from thecloud-ops-kubernetes
branch.
Base images
The Jenkins job build-base-image
reads the Operations Specification file to identify which Java and Tomcat versions to install in the container images, and specifically which binary packages to install.
- The process first looks for the
devops/ops-spec/src/main/resources/ops-spec.json
in the specifiedep-commerce
branch. - The process falls-back to and uses
devops/ops-spec.json
from thecloud-ops-kubernetes
branch.
Commerce images
The Jenkins jobs that build Self Managed Commerce container images read the Operations Specification file to identify which base images are required to satisfy the Self Managed Commerce Tomcat version requirements.
- The process first looks for the
ops-spec.json
in the provided deployment package zip file. - The process falls-back to and uses
devops/ops-spec.json
from thecloud-ops-kubernetes
branch.
ActiveMQ image
The Jenkins jobs that build the ActiveMQ container image reads the Operations Specification file to identify which Java and ActiveMQ versions to install in the container image, and specifically which binary packages to install.
- The process first looks for the
devops/ops-spec/src/main/resources/ops-spec.json
in the specifiedep-commerce
branch. - The process falls-back to and uses
devops/ops-spec.json
from thecloud-ops-kubernetes
branch.
Data Population image
The Jenkins job build-data-pop
reads the Operations Specification file to identify which Java version to install in the container image, and specifically which binary package to install.
- The process first looks for the
ops-spec.json
in the provided deployment package zip file. - The process falls-back to and uses
devops/ops-spec.json
from thecloud-ops-kubernetes
branch.