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 from version 2.13.0.
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.ymlfile. The obsolete parameters are listed below indocker-compose.ymlparameter 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.jsonfile accordingly when merging the code changes. For more information about theops-spec.jsonfile, 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_urlTF_VAR_jdk_folder_nameTF_VAR_maven_download_urlTF_VAR_maven_folder_nameTF_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
jdkVersionis read from.java.versionin theops-spec.jsonfile. - The value for
mavenVersionis read from.maven.versionin theops-spec.jsonfile. - The value for
tomcatVersionis read from.applicationServer.versionin theops-spec.jsonfile.
| 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-javaandtomcatbase images, so that images with the new tags exist. A simple way to do this is to run thebuild-core-imagesJenkins job after updating the base infrastructure.note
Your Commerce image builds will fail if this step has not been completed.