Files
tf_registry/operator/README.md
T

1.6 KiB

Terra Operator Manifests

Minimal Setup for Namespace terra

1. Structure

  • Namespace: terra
  • Storage: внешний S3 (Nubes Cloud).
  • CRD: TerraformProviderRelease definitions.

2. How to apply

kubectl apply -f operator/manifests/00-namespace.yaml
kubectl apply -f operator/manifests/02-crd.yaml
kubectl apply -f operator/manifests/04-operator-deployment.yaml
kubectl apply -f operator/manifests/05-registry-server.yaml

3. Usage

Create a release request:

apiVersion: terra.core.nubes.ru/v1alpha1
kind: TerraformProviderRelease
metadata:
  name: mycloud-v0-1-0
  namespace: terra
spec:
  providerName: "mycloud"
  version: "0.1.0"
  gitRepo: "https://github.com/Start-Ops/terraform-provider-mycloud.git"
  gitRef: "v0.1.0"

Простыми словами: что это и зачем

Это набор манифестов и небольшой сервис, который автоматизирует сборку Terraform‑провайдеров. Идея простая: я описываю в CRD, какой провайдер и какую версию собрать, а оператор сам запускает Job, собирает бинарники и складывает их в хранилище. Дальше registry‑server отдает эти артефакты Terraform‑клиентам.

Зачем это нужно:

  • чтобы не собирать провайдеры руками;
  • чтобы хранить артефакты в одном месте;
  • чтобы Terraform мог скачивать провайдеры по обычному источнику.