Przejdź do treści

Tworzenie grupy repozytoriów w GitLab za pomocą Terraform

Wprowadzenie

Niniejsza sekcja dokumentacji opisuje proces tworzenia grupy repozytoriów w GitLab przy użyciu Terraform. Prezentowane podejście umożliwia automatyczne zarządzanie strukturą repozytoriów, co wspiera podejście Infrastructure as Code (IaC).

Korzyści wynikające z użycia Terraform

Terraform 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 Terraform

Aby utworzyć grupę repozytoriów w GitLab, należy dodać odpowiednią definicję do pliku konfiguracyjnego Terraform.

Repozytorium GitLab zawierające definicję:
🔗 GitLab: pl.rachuna-net/infrastructure/terraform/gitlab

Przykładowy plik konfiguracyjny Terraform

📄 Ścieżka pliku: pl.rachuna-net/infrastructure/grp_packer.tf

module "group_packer" {
    source = "git@gitlab.com:pl.rachuna-net/infrastructure/terraform/modules/gitlab-group.git?ref=v1.1.1"

    name         = "packer"
    description  = "Virtual machine templates for Packer"
    parent_group = local.parent_name
    visibility   = "public"
    icon_type    = "packer"
}

# Odkomentuj po utworzeniu modułu Packer i dodaniu pierwszego pliku w tym katalogu
# module "packer" {
#     source = "./packer/"
# }

Weryfikacja planu Terraform

Po zapisaniu konfiguracji należy uruchomić polecenie terraform plan, które zwróci listę planowanych zmian:

Plan. Resource actions are indicated with the following symbols:
  + create
Terraform will perform the following actions:
  # module.pl_rachuna-net.module.infrastructure.module.group_packer.gitlab_group.group will be created
  + resource "gitlab_group" "group" {
      + name                               = "packer"
      + description                        = "Virtual machine templates for Packer"
      + visibility_level                   = "public"
      + parent_id                          = 102204432
      + avatar                             = ".terraform/modules/pl_rachuna-net.infrastructure.group_packer/images/packer.png"
      + avatar_hash                        = "7b6d29da98428d8917da19d0033ad7281cc956ade0b05867726f3df6dc8bcab7"
      + web_url                            = (known after apply)
      + ... (inne właściwości)
    }
Plan: 1 to add, 0 to change, 0 to destroy.

Wdrożenie zmian

Jeśli planowane zmiany są zgodne z oczekiwaniami, należy wdrożyć je do main poprzez Merge Request (MR), co spowoduje utworzenie grupy repozytoriów w GitLab.

Podsumowanie

Wdrożenie grupy repozytoriów w GitLab za pomocą Terraform zapewnia automatyzację, powtarzalność i centralizację zarządzania. Po poprawnym wykonaniu opisanych kroków, nowa grupa repozytoriów będzie gotowa do użytku.

🚀 Gotowe! Grupa repozytoriów została pomyślnie utworzona przy użyciu Terraform. 🎉