Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.4%) to scientific vocabulary
Repository
IaC approach to manage resources in a OTC Cloud
Basic Info
- Host: GitHub
- Owner: zbw
- License: gpl-3.0
- Language: HCL
- Default Branch: main
- Size: 189 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
About
This repository contains all Infrastructure as Code (IaC) related files. The infrastructure is represented through declarative configuration files written in HashiCorp Configuration Language (HCL).
Structure
The repository is structured as following:
modules: contains helper modules
stages: contains infrastructure code of all stages. terraform-init contains the infrastructure
code for the initial creation of the bucket for the remote terraform state. The
other folders like dev-nl and tools-nl represent the different stages.
Apply changes
In general changes should be applied through a Gitlab Pipeline. Run terraform apply on
own risk locally and if you know what you are doing. Applying changes to the dev environment
might be necessary from time to time. Nevertheless, before applying any changes or creating
a commit it is good practise to check what changes will be applied beforehand via
terraform plan.
Update providers
terraform init -upgrade
Remember to regularly update providers on your local installation in order to use the same
versions as the gitlab pipeline which updates them every run.
Update modules
terraform get -update
Authentication
To setup terraform locally via terraform init you need to authenticate first.
Therefore save your OTC Access/Secret-Key to the environment variables
AWS_ACCESS_KEY_ID and ACCESS_KEY respectively to SECRET_KEY and AWS_SECRET_ACCESS_KEY.
In case you already have access to the Vault instance you may use the helper functions
in cloudCredentials.sh. In case you don't have the Access/Secret Key Pair yet, you
have to create one in the IAM section in the OTC console.
Authentication Setup
For a general introduction on how to setup authentification with gitlab correctly, see here.
For the correct configuration of OIDC in vault use the following commands when setting it up (see link):
shell
vault write auth/oidc-cloud2/config \
oidc_discovery_url="https://gitlab.lori-cloud.zbw.eu" \
oidc_client_id="[your_application_id]" \
oidc_client_secret="[your_secret]" \
default_role="developer" \
bound_issuer="localhost"
shell
vault write auth/oidc-cloud2/role/developer -<<EOF
{
"user_claim": "sub",
"allowed_redirect_uris": "https://vault-nl.zbw.eu/ui/vault/auth/oidc-cloud2/oidc/callback,http://localhost:8250/oidc/callback",
"bound_audiences": "[your_application_id]",
"oidc_scopes": "openid",
"role_type": "oidc",
"policies": "developer",
"ttl": "1h",
"bound_claims": { "groups": ["stb"] }
}
EOF
Create a new environment (dev,test,prod)
You'll temporarily need tenant admin privileges.
- In OTC GUI, add user terraformci to group admin
- In terraform-init(_nl)/variables.tf, section locals{projects..}, add a name for the new project
- wait for >10 minutes between adding admin privileges in GUI and the following step (you don't break anything if you're too quick, but terraform is going to throw errors)
- in context of directory terraform-init(_nl), type terraform apply. Do not confirm yet, but:
- (!) verify that a new environment is created rather than overwriting an existing one. Thus, watch out for output line Plan: n to add, 0 to change, 0 to destroy. Resources may only be added, no resources shall be changed or destroyed. You are working with tenant-admin privileges!
- confirm the terraform apply command by typing yes
- verify in OTC GUI that a new project has been created
- (!) remove user terraformci from group admin
- continue in Terraform, in context of the newly created directory named as the new project
Owner
- Name: ZBW - Leibniz Information Centre for Economics
- Login: zbw
- Kind: organization
- Location: Kiel, Hamburg (Germany)
- Website: https://www.zbw.eu/en/
- Twitter: zbw_news
- Repositories: 17
- Profile: https://github.com/zbw
ZBW is a public information provider to support open science and research in economics. It holds more than 5 Mio media items and operates web applications.
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: Bay
affiliation: "ZBW - Leibniz Information Centre for Economics"
given-names: Christian
- family-names: Schwöbel
given-names: Jörg
affiliation: "ZBW - Leibniz Information Centre for Economics"
title: "Infrastructure as code in terraform for OpenTelekomCloud (OTC)"
abstract: "Setup of multiple stages in a cloud environment. Contains multiple modules like networking, load balancer, kubernetes cluster, whitelists and so on."
version: 0.1.0
license: GPL-3.0
date-released: 2025-28-01
repository-code: "https://github.com/zbw/zbw-terraform"
contact:
- name: "Christian Bay"
- email: c.bay@zbw.eu
- affiliation: "ZBW - Leibniz Information Centre for Economics"
keywords:
- "iac"
- "infrastructure as code"
- "terraform"
- "open telekom cloud"
- "vault"
GitHub Events
Total
- Member event: 1
- Create event: 1
Last Year
- Member event: 1
- Create event: 1
Dependencies
- git-commit-msg-linter ^3.2.8 development