Files
tf_registry/operator/README.md
T

45 lines
1.6 KiB
Markdown

# Terra Operator Manifests
## Minimal Setup for Namespace `terra`
### 1. Structure
- **Namespace**: `terra`
- **Storage**: внешний S3 (Nubes Cloud).
- **CRD**: `TerraformProviderRelease` definitions.
### 2. How to apply
```bash
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:
```yaml
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 мог скачивать провайдеры по обычному источнику.