Update to Version 3.0
Overview
CloudOps for Kubernetes release 3.0 does not contain significant infrastructure or architectural changes as compared to release 2.14. The approach and processes to upgrade from CloudOps for Kubernetes 2.14.x
to 3.0.x
are the same as recent 2.x
releases.
The significant changes in release 3.0 are related to how software stack specifications are defined, as described in Operations Specification (ops-spec.json), to allow CloudOps for Kubernetes 3.0 to support multiple build and deployment stacks. Most of the code changes in release 3.0 are related to how the Jenkins jobs consume stack specifications. The changes are primarily changes to docker-compose.yml
parameters, Jenkins job parameters, and default image tag values. Review the changes summarized below, and how they may impact your customizations or processes.
Prerequisites
Complete the upgrade to CloudOps for Kubernetes release 2.14.x before upgrading to release 3.0.x. For instructions on upgrading to release 2.14.x, see Update to version 2.14.
Preparation
Review all upgrade steps and requirements described in this document.
Review your custom Jenkins jobs to determine if any of them call the modified CloudOps for Kubernetes jobs listed below in Jenkins job parameter changes. If you find any such custom jobs, make plans to update them as part of the upgrade to ensure they continue to work with release 3.0.x.
Remove the obsolete parameters from your
docker-compose.override.yml
file. The obsolete parameters are listed below indocker-compose.yml
parameter changes.If you have been using customized or non-default Java, Maven or ActiveMQ versions and you want to continue using those, ensure that you update the appropriate
ops-spec.json
file accordingly when merging the code changes. For more information about theops-spec.json
file, see Operations Specification (ops-spec.json).If you directly customized or modified any CloudOps for Kubernetes Jenkins jobs or Groovy library files, set aside more time for code merging, as it may require more effort than in previous upgrades.
note
For information on the recommended approach to customizing Jenkins jobs, see Customizing Jenkins.
What Has Changed
For a list of the changes in the release, see Release Notes.
docker-compose.yml
parameter changes
The docker-compose.yml
file has been updated to remove some variables that are now obsolete. Review your docker-compose.override.yml
file to see if you have defined the variables there. These variables have been replaced by values contained in the new ops-spec.json
file. If these variables are present in docker-compose.override.yml
, they will be ignored, and should be removed for consistency with this and future releases.
The following variables are affected:
TF_VAR_oracle_jdk_download_url
TF_VAR_jdk_folder_name
TF_VAR_maven_download_url
TF_VAR_maven_folder_name
TF_VAR_tomcat_version
Jenkins job parameter changes
Several Jenkins jobs have parameter changes in CloudOps for Kubernetes 3.0.0
. Review whether you have any custom jobs that call or invoke the affected jobs and update your custom jobs where appropriate.
The Jenkins jobs with parameter changes in CloudOps for Kubernetes 3.0.0
are listed below.
Jenkins Job | Parameters Added | Parameters Removed |
---|---|---|
build-core-images | epCommerceBranch | tomcatVersion |
build-base-image | epCommerceBranch , epCommerceRepoURL , epCommerceCredentialId | tomcatVersion |
build-activemq | epCommerceBranch , epCommerceRepoUrl , epCommerceCredentialId | |
build-jenkins-agents | epCommerceBranch , buildJenkinsAgent , buildMavenAgent , epCommerceCredentialId | |
build-selected-docker-images | tomcatVersion | |
build-commerce-images | tomcatVersion | |
build-data-pop | epCommerceCredentialId | tomcatVersion |
build-cortex | epCommerceCredentialId | tomcatVersion |
build-search | epCommerceCredentialId | tomcatVersion |
build-batch | epCommerceCredentialId | tomcatVersion |
build-integration | epCommerceCredentialId | tomcatVersion |
build-cm | epCommerceCredentialId | tomcatVersion |
build-data-sync | epCommerceCredentialId | tomcatVersion |
build-mock | epCommerceCredentialId | tomcatVersion |
create-and-manage-database-server | rdsEngineVersion | useLTSVersion , auroraEngineVersion , postgresRDSEngineVersion |
cloudops-for-kubernetes-ci | epCommerceCredentialId |
Image tagging changes
Container images that are used to build components relying on specific Java, Maven, or Tomcat versions are now tagged with those versions. The specific strings used in the tags are obtained from the ops-spec.json
file.
- The value for
jdkVersion
is read from.java.version
in theops-spec.json
file. - The value for
mavenVersion
is read from.maven.version
in theops-spec.json
file. - The value for
tomcatVersion
is read from.applicationServer.version
in theops-spec.json
file.
ECR Repository | New Tag | Old Tag |
---|---|---|
jenkins/maven-agent | jdkVersion-mavenVersion | CloudOps for Kubernetes branch name |
ep/tomcat | tomcatVersion-jdkVersion | 8 |
/ep/amazonlinux-java | jdkVersion | 2 |
Perform the Update
Follow the general instructions on updating the base infrastructure in the Upgrading CloudOps for Kubernetes documentation.
Additional Steps
Complete the following additional steps after updating the base infrastructure to CloudOps for Kubernetes 3.0.x
.
Rebuild the
amazonlinux-java
andtomcat
base images, so that images with the new tags exist. A simple way to do this is to run thebuild-core-images
Jenkins job after updating the base infrastructure.note
Your Commerce image builds will fail if this step has not been completed.