Я использую поставщика Terraform GitHub для определения репозиториев GitHub для внутреннего экземпляра GitHub Enterprise (хотя вопрос не зависит от поставщика c).
Существующие github_repository
Ресурс работает нормально, но я хотел бы иметь возможность устанавливать нестандартные значения по умолчанию для некоторых его аргументов и легко группировать другие аргументы в один новый аргумент.
например,
github_repository
Значение private
по умолчанию false
, но я бы хотел по умолчанию true
- Многие репозитории захотят разрешить только слияния squa sh, поэтому наличие параметр
squash_merge_only
, который устанавливает allow_squash_merge = true, allow_rebase_merge = false, allow_merge_commit = false
Есть и другие случаи, но они иллюстрируют суть. Цель состоит в том, чтобы упростить для людей правильную настройку новых репозиториев и избежать повторения большого количества конфигураций в каждом репо. of:
Foo/custom_repo/main.tf
:
resource "github_repository" "custom_repo" {
name = ${var.repo_name}
private = true
allow_squash_merge = true
allow_merge_commit = ${var.squash_merge_only ? false : true}
allow_rebase_merge = ${var.squash_merge_only ? false : true}
}
Foo/main.tf
:
provider "github" {
...
}
module "MyRepo_module" {
source = "./custom_repo"
repo_name = "MyRepo"
squash_merge_only = true
}
Это немного бесполезно sh, так как я должен добавить переменная для каждого другого аргумента в github_repository
, который люди, использующие модуль custom_repo
, могут захотеть установить (это в основном все они - я не пытаюсь ограничивать то, что людям разрешено делать) - см. name
и repo_name
на примере. Все это затем требует отдельного документирования, что также является позором, учитывая, что для существующего провайдера есть хорошие документы. их?