Repozytorium kodu
less than a minute
Niniejsza sekcja dokumentacji opisuje proces tworzenia repozytoriów w GitLab przy użyciu OpenTofu. Prezentowane podejście umożliwia automatyczne zarządzanie repozytoriami, co wspiera podejście Infrastructure as Code (IaC).
Repozytorium GitLab zawierające definicję
🔗 GitLab: pl.rachuna-net/infrastructure/opentofu/iac-gitlab
Repozytorium modułu opentofu - gitlab-group
🔗 GitLab: pl.rachuna-net/infrastructure/opentofu/modules/gitlab-project
Korzyści wynikające z użycia OpenTofu
OpenTofu pozwala na:
- Automatyzację tworzenia i zarządzania grupami repozytoriów,
- Wersjonowanie konfiguracji, co ułatwia kontrolę zmian,
- Powtarzalność konfiguracji, eliminując błędy manualne.
Definiowanie grupy w OpenTofu
Aby utworzyć repozytorium w GitLab, należy dodać odpowiednią definicję do pliku konfiguracyjnego OpenTofu.
📄 Ścieżka pliku: pl.rachuna-net/containers/opentofu
module "opentofu" {
source = "git@gitlab.com:pl.rachuna-net/infrastructure/opentofu/modules/gitlab-project.git?ref=v1.0.0"
name = "opentofu"
archived = false
description = "Obraz Dockerowy z narzędziem opentofu."
visibility = "public"
tags = ["docker", "opentofu"]
avatar = "opentofu"
parent_group = local.parent_name
project_type = "container"
build_git_strategy = "clone"
gitlab_ci_path = "containers/docker.yml@pl.rachuna-net/cicd/gitlab-ci"
# sonarqube
is_enabled_sonarqube = true
sonarqube_cloud_project_id = "pl.rachuna-net_opentofu"
# mirror to github
mirror_url = format(
"https://%s:%s@github.com/%s/%s.git",
data.vault_kv_secret_v2.github.data["owner"],
data.vault_kv_secret_v2.github.data["token"],
data.vault_kv_secret_v2.github.data["owner"],
"pl.rachuna-net.containers.opentofu"
)
variables = {
PUBLISH_VAULT_SECRET_PATH = {
description = "Ścieżka do sekrety Vault, gdzie będą publikowane zmienne środowiskowe",
value = "pl.rachuna-net/containers/opentofu:CONTAINER_IMAGE_OPENTOFU"
}
PUBLISH_VAULT_VALUE_VARIABLE = {
description = "Nazwa zmiennej środowiskowej, która będzie publikowana w Vault",
value = "CONTAINER_IMAGE_VERSION"
}
}
}