Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Code updates and Infrastructure upgrades have been mostly automated so that these operations can happen rapidly. This happens via multiple github repositories and actions.

Playbooks

Playbooks are composed of an action or series of actions that constitute a a common process.

Test a new version of WordPress and/or nginx

A scheduled process is responsible for periodically checking for a new version of WordPress and nginx. This process will deploy the image to the wordpress-wordpress-run:latest image tag, from which a test suite will be run comparing the dev and latest versions, at the end of which digital-latest.apps.silver.devops.gov.bc.ca will be a copy of production with the latest version of wordpress running on it.

Check the results of the screenshot tests, and do some user testing of the site. Once satisfied with the upgrade, you can change the test and production image tags in openshift and bring down the pods in those deployments. Once the deployments are restarted with new pods, the new version of wordpress will be in place.

Workflows

Spin up a new wordpress instance

A new WordPress site can be created by executing the Create Wordpress Instance workflow. This will create all the necessary openshift resources in the specified environment, who’s names will be prefixed by the site-name input and the URL will be digital-site-nameapps.silver.devops.gov.bc.ca. The controlling infrastructure-as-code is implemented with kustomized, and can be found in the wordpress-deploy-digimod repository. The action will also copy the wordpress cli to the container and perform a site install.

Update the theme

You can deploy the latest theme from the bcgov-wordpress-block-theme-digimod repository with the Deploy Plugins workflow. The will deploy to the specified environment for digital-site-nameapps.silver.devops.gov.bc.ca.

Update digimod plugins

You can deploy the latest plugins from the wordpress-digimod repository with the Deploy Plugins workflow. The will deploy to the specified environment for digital-site-nameapps.silver.devops.gov.bc.ca.

Update a single plugin

You can deploy the a specific plugin from the wordpress-digimod repository with the Deploy Plugin workflow. The will deploy the plugin to the specified environment for digital-site-nameapps.silver.devops.gov.bc.ca.

Run the test suite

Perform a full site export and test

You can perform a full end-to-end test with the Full Test workflow. This test deploys a new instance of wordpress, recreates the production website, and performs screenshot tests to compare the site before and after the latest version of the themes and plugins are deployed to see if the site will be affected by development changes. This will run:

  1. Create Wordpress Instance

  2. Replicate Production

  3. Sitemap Screenshots

  4. Deploy theme

  5. Deploy plugins

  6. Verify Screenshots

Perform a test of a Wordpress upgrade

We check for wordpress and nginx upgrades with a github actions cron job. This is a more complex process that involves several workflows over multiple repositories.

  1. Every Monday at midnight, a workflow from the wordpress-deploy-digimod repository compares the version found in the dockerfile of the build configuration for wordpress, and compares it to the latest version found in dockerhub. If these are not the same, it updates the dockerfile in the repository.

  2. A second workflow is then triggered when the dockerfile is updated, which builds the image and updates the image in openshift, under the ‘latest’ tag.

  3. A third workflow in the wordpress-digimod repository operates on a cron job scheduled at 1AM on Monday, one hour after the first workflow is executed. It checks the status of the second workflow; if it is successful, it deploys the new version of wordpress to digital-latest. It first deploys from the dev tag, then takes screenshots, deploys from the latest tag, and then compares.

Configure the SSO for a site

WordPress deployments can be configured for SSO integration with Keycloak. The integrations are managed through the CSS app. SSO is managed on the client side with the MiniOrange OAuth plugin. Sites in Dev, Test, and Prod all must use different client credentials, so they must be set up differently. This can be set up by running the Reconfigure SSO workflow. Note that both the MiniOrange OAuth plugin and the digimod-misc plugin (which contains the wordpress script for changing the MiniOrange configuration) must already be installed on the site for this to work. This can be done either from an Export from production, deploy plugins, or deploy plugin workflow.

Export from production

You can perform a site backup from production and import it to the specified environment for digital-site-nameapps.silver.devops.gov.bc.ca. This can be done by running the Site Export from Production workflow.

Migration to production

You can perform a migration to production and import it from the specified environment and site digital-site-nameapps.silver.devops.gov.bc.ca. This can be done by running the Site Export from Production workflow.

Backup

Restore Backup

Take Screenshots

Verify Screenshots

  • No labels