Skip to content

1.1.0-gcm.9

Choose a tag to compare

@maelvls maelvls released this 17 Jul 10:06
· 83 commits to main since this release

To install this version, please follow the instructions on the README.md (1.1).

Changelog

This Marketplace build release fixes the version 1.1 that had become uninstallable due to a breaking change introduced by Google.

Notes

📦 Recording of the manual steps of the release process

Since we do not have yet a CD pipeline that would do the work, we prefer documenting every step of the manual process on every single release in order to (1) have a record of what has been done, and (2) be able to remember how to release for the next time.

Information about this release:

(fill this table after you are done with the below steps)

README.md https://github.com/jetstack/jetstack-secure-gcm/blob/release-1.1/README.md
deployer image gcr.io/jetstack-public/jetstack-secure-for-cert-manager/deployer:1.1.0-gcm.9
deployer digest e19eb224ad10
git tag 1.1.0-gcm.9
git commit d208299
retag logs https://console.cloud.google.com/cloud-build/builds/d60468af-2ad9-4ec3-bed2-1069fe8e37b6?project=885059085598
deployer logs https://console.cloud.google.com/cloud-build/builds/deaf4cb1-cb36-40e7-a697-b266dd14edfe?project=885059085598

Step-by-step process followed:

  • Set the following variables in your shell session. The APP_VERSION corresponds to the release of GCM that you plan on doing. For the other _TAG variables, pick the latest git tag of each project.

    APP_VERSION="1.1.0-gcm.9"
    BRANCH=release-1.1
    CERT_MANAGER_TAG="v1.1.0"
    JETSTACK_AGENT_TAG="v0.1.29"
    GOOGLE_CAS_ISSUER_TAG="v0.3.0"
    GOOGLE_CAS_ISSUER_TAG_DOCKER="0.3.0" # same as above, but without the 'v'
  • Fast-forward (or create) the release branch:

    # If the release branch does not already exist:
    git fetch origin
    git checkout -b $BRANCH origin/main
    
    # If the release branch already exists:
    git checkout $BRANCH
    git fetch origin
    git merge --ff-only origin/main
  • Update the above table with the README.md link.

  • ⚠️ Copy any "new" Role or ClusterRole into the schema.yaml:

    # From the cert-manager repo:
    git fetch --tags
    git diff v1.3.1 v1.4.0 -- deploy/charts/cert-manager/templates
    
    # From google-cas-issuer repo:
    git fetch --tags
    git diff v0.3.0 v0.5.2 -- config/
  • Make sure to be logged in with gcloud and to have the "Editor" role on
    the jetstack-public repo:

    gcloud config set project jetstack-public
  • Create the smoke-test cluster. When not using it, we remove the cluster.

    gcloud container clusters create smoke-test --project=jetstack-public --zone=europe-west2-b --workload-pool=jetstack-public.svc.id.goog --num-nodes=2 --async
  • Retag the images with the correct licenses using Cloud Build:

    gcloud builds submit --project jetstack-public --config cloudbuild-retag-with-licenses.yaml --substitutions \
        _APP_VERSION=$APP_VERSION,_CERT_MANAGER_TAG=$CERT_MANAGER_TAG,_JETSTACK_AGENT_TAG=$JETSTACK_AGENT_TAG,_GOOGLE_CAS_ISSUER_TAG=$GOOGLE_CAS_ISSUER_TAG,_GOOGLE_CAS_ISSUER_TAG_DOCKER=$GOOGLE_CAS_ISSUER_TAG_DOCKER
  • Copy the link to the Cloud Build logs into the table above (row "retag logs").

  • Run the following command that will update the app version in schema.yaml:

    # You must be in the jetstack/jetstack-secure-gcm repo folder.
    sed -i.bak "s/publishedVersion: .*/publishedVersion: $APP_VERSION/" schema.yaml
    git add schema.yaml
    git commit -m "bump version to $APP_VERSION" --edit
  • Copy and paste that commit hash into the above table. You will create the tag later on.

  • Build the deployer image:

    gcloud builds submit --project jetstack-public --timeout 1800s --config cloudbuild.yaml \
      --substitutions _CLUSTER_NAME=smoke-test,_CLUSTER_LOCATION=europe-west2-b,_APP_MINOR_VERSION=$(awk 'BEGIN {FS="."}; {print $1 "." $2}' <<<$APP_VERSION),_APP_VERSION=$APP_VERSION
  • Copy the link to the Cloud Build logs into the table above (row "deployer logs").

  • Tag the commit you created above:

    COMMIT=d2082991611dfa5ab265faaee040c5e861f564ee
    git tag $APP_VERSION $COMMIT
    git push --tags
  • Delete the smoke-test cluster.

    gcloud container clusters delete smoke-test --zone=europe-west2-b --async
  • Add the image digest to the table above by running:

    gcloud container images list-tags gcr.io/jetstack-public/jetstack-secure-for-cert-manager/deployer --limit=1
  • Go to the GitHub Releases and click "Edit tag", and then:

    1. Set the "Release title" to the name of the tag,
    2. Add this current Markdown <details> block _+ the release notes to the release description,
    3. Click "Save Draft"
    4. Don't forget to update the <details> block with any change or addition to the release process.
  • Go to the solution admin UI, click "Update the image" and "Save". After saving, go to the solution page and click "Submit for review" (you must be "Editor" of the jetstack-public project):
    To update the already released minor version, first open the existing minor version by clicking on the version itself (it is a link). This screenshot is stored in this issue: https://github.com/jetstack/jetstack-secure-gcm/issues/21 Then, click on Update images and Save. This screenshot is stored in this issue: https://github.com/jetstack/jetstack-secure-gcm/issues/21 The solution admin page has a button 'Submit for review' at the bottom that must be clicked in order to get the new version reviewed by Google. This screenshot is stored in this issue: https://github.com/jetstack/jetstack-secure-gcm/issues/21

  • Finally, when the solution is reviewed, open the GitHub release and click
    "Publish".