Skip to content

How to check that a product is configured correctly

This how-to guide will take you through the process of checking that all parts of a product have been created and are correctly configured for our most up-to-date processes.

There is a dedicated how-to covering how to start a new product from scratch.

Important

Is it absolutely vital that you configure everything covered in this guide including the Google product, the GitLab product and the GitLab runner configuration even if you think you won't use them. Our standard CI templates assume that all parts of a product are present and you are likely to run into confusing problems if one is missing. The financial cost of configuring a Google product and GitLab runner is minimal so don't be tempted to skip them for reasons of cost.

The word "product" can mean many things in the DevOps division. In particular what a "product" means from a GitLab perspective may be different than from a "Google Cloud" perspective. We have a dedicated explainer covering products and service infrastructure.

The following sections cover the checks you should make.

Teams

Check that:

  • There is an appropriate delivery team present in team_data.json.
  • The user accounts in the team are of the form {crsid}@gcloudadmin.g.apps.cam.ac.uk.

For further steps, you need to know the name of the Google Groups which have been created representing the team members and roles.

Google Cloud resources

Check that:

For further steps, you need know the "meta project" id and "configuration bucket" id for the product. Ask teamCloud if you do not know these.

GitLab projects

Check that:

  • There is configuration in gitlab-project-factory for the product.
    • If there is no configuration but there are already GitLab projects, see the migration guide. teamCloud can help with tricky migrations.
  • The configuration specifies the meta project in the product_meta_project variable.
  • The configuration uses parent_group_id rather than parent_full_path.
  • Projects which build container images have container_expiration_policy set. See the configuration for the Regent House ballots product for a real-life example of container expiration policies.

For further steps, you need the numeric id of the GitLab product's group. This can be found on the group's page in GitLab.

GitLab CI runners

Check that:

  • There is configuration in gitlab-runner-infrastructure for your product.
  • The configuration specifies the Google Cloud configuration bucket.
  • The configuration specifies the numeric id of the GitLab product's group.

Summary

In this how-to you learned what configuration must be present for a product in order to use our current development automation processes.