Use Exoscale
Currently the Terraform module which this component uses for Exoscale only supports provisioning VSHN-managed OCP4 clusters on Exoscale. |
See the Exoscale installation how-to for a comprehensive how-to for setting up OCP4 on Exoscale. |
The following steps show how to set up Terraform with Exoscale.
The component currently assumes that the Git repositories live on a GitLab instance. |
Setup credentials
-
Set up two new API keys in portal.exoscale.com. One of them is used for the Terraform pipeline.
-
The first key needs to be created with a role with full permissions
Full permissions role configuration{ "name": "unrestricted", "policy": { "default-service-strategy": "allow" } }
-
The second key needs the following IAM role (this key will be deployed onto the LBs for Floaty):
Floaty IAM role{ "name": "floaty", "policy": { "default-service-strategy": "deny", "services": { "compute-legacy": { "type": "rules", "rules": [ { "action": "allow", "expression": "operation in ['compute-add-ip-to-nic', 'compute-list-nics', 'compute-list-resource-details', 'compute-list-virtual-machines', 'compute-query-async-job-result', 'compute-remove-ip-from-nic']" } ] } } } }
-
-
Create a "Project Access Token" for the hieradata repository. The token requires the following permissions:
-
api
-
read_repository
-
write_repository
The user which is created will be named
project_<project-id>_bot
, where<project-id>
is the project ID of the GitLab project. If the project already has access tokens the user will be namedproject_<project-id>_bot<N>
instead, whereN
is a running counter (1
for the second token, etc.) -
-
Set up a "Servers API" token on control.vshn.net.
-
If there’s no access token configured on the APPUiO hieradata repo, create one. Otherwise check Vault for the token.
Setup component
-
Configure component parameters
openshift4_terraform: provider: exoscale gitlab_ci: git: (1) username: Max Mustermann email: mm@example.com terraform_variables: # Required parameters rhcos_template: TheTemplateNameForRHCOS base_domain: ${openshift:baseDomain} ignition_ca: |- -----BEGIN CERTIFICATE----- ... ssh_key: ssh-ed25519 AA... bootstrap_bucket: https://sos-${facts:region}.exo.io/${cluster:name}-bootstrap hieradata_repo_user: project_123_bot (2) # Optional parameters: worker_count: 3 worker_size: Extra-large
1 The Git author name and email address. Used when creating hieradata commits. If not specified, the GitLab CI defaults will be used. 2 The user created for the hieradata project access token. Please note that the Terraform module currently only supports the VSHN APPUiO hieradata -
Compile the cluster catalog
-
Configure the cluster catalog GitLab repository CI/CD
-
manifests/openshift4-terraform/gitlab-ci.yml
-
-
EXOSCALE_API_SECRET_RW
-
EXOSCALE_API_KEY_RW
-
EXOSCALE_FLOATY_KEY
-
EXOSCALE_FLOATY_SECRET
-
HIERADATA_REPO_TOKEN
— the VSHN APPUiO hieradata project access token -
CONTROL_VSHN_NET_TOKEN
-
-