@@ -16,47 +16,49 @@ Deploying a Twined service means the service:
16
16
* Will automatically spin down after it has finished answering a question
17
17
* Will automatically build and redeploy after a relevant code change (e.g. on push or merge into ``main ``)
18
18
19
+ The main part of the deployment process is deploying the service network infrastructure. Once this is done, services can
20
+ be easily added as necessary.
21
+
19
22
Prerequisites
20
23
=============
21
24
Twined services are currently deployable to Google Cloud Platform (GCP). You must have "owner" level access to the GCP
22
25
project you're deploying to and billing must be set up for it.
23
26
24
27
Deploying step-by-step
25
28
======================
26
- The main part of deployment is deploying the service network infrastructure. Once this is done, services can be easily
27
- added as necessary.
28
-
29
29
There are three steps to a deployment:
30
30
31
31
1. Deploy the core infrastructure (e.g. storage bucket, event store, service accounts and roles)
32
32
2. Deploy the Kubernetes cluster and partner cloud functions
33
33
3. Build and push service docker images to the artifact registry
34
34
35
- Deploy core infrastructure
36
- --------------------------
35
+ 1. Deploy core infrastructure
36
+ -----------------------------
37
37
38
- - Deploy the ``terraform-octue-twined-core `` Terraform module
38
+ - Follow `the instructions <https://github.com/octue/terraform-octue-twined-core >`_ to deploy the resources in the
39
+ ``terraform-octue-twined-core `` Terraform module
39
40
- This only needs to be done once per service network
40
- - Follow the instructions `here <https://github.com/octue/terraform-octue-twined-core >`_
41
41
42
- Deploy Kubernetes cluster
43
- -------------------------
42
+ 2. Deploy Kubernetes cluster
43
+ ----------------------------
44
44
45
- - Deploy the ``terraform-octue-twined-cluster `` Terraform module
45
+ - Follow the `instructions <https://github.com/octue/terraform-octue-twined-cluster >`_ to deploy the resources in the
46
+ ``terraform-octue-twined-cluster `` Terraform module
46
47
- This only needs to be done once per service network
47
- - Follow the instructions `here <https://github.com/octue/terraform-octue-twined-cluster >`_
48
48
49
- Build and push service docker images
50
- ------------------------------------
49
+ 3. Build and push service docker images
50
+ ---------------------------------------
51
51
Your service is available if its docker image is in the service network's artifact registry repository. We recommend
52
- pushing a new image for each merge into the ``main `` branch, corresponding to a new service revision.
52
+ pushing a new image for each merge into the ``main `` branch, corresponding to a new service revision. This can be done
53
+ automatically:
53
54
54
- - Add the `build-twined-service <https://github.com/octue/workflows/blob/main/.github/workflows/build-twined-service.yml >`_
55
- GitHub Actions workflow to your service's GitHub repository
56
- - This needs to be done for every service you want to deploy
57
- - Follow the instructions `here <https://github.com/octue/workflows#deploying-a-kuberneteskueue-octue-twined-service-revision >`_
55
+ - Follow the `instructions <https://github.com/octue/workflows#deploying-a-kuberneteskueue-octue-twined-service-revision >`_
56
+ to add the `build-twined-service <https://github.com/octue/workflows/blob/main/.github/workflows/build-twined-service.yml >`_
57
+ GitHub Actions workflow to your service's GitHub repository. Set its trigger to merge or push to ``main `` (see example
58
+ below)
59
+ - This needs to be done **once for every service ** you want to deploy
58
60
- A live example can be `found here <https://github.com/octue/example-service-kueue/blob/main/.github/workflows/release.yml >`_
59
- including automated pre-deployment testing and release of the code on GitHub
61
+ including automated pre-deployment testing and creation of a GitHub release
60
62
61
63
What next?
62
64
==========
0 commit comments