Files
tf_registry/server
..

Registry Server Build

This folder holds the standalone registry server build and helper scripts.

Provider build and upload

Script: build-provider.sh

What it does:

  • Builds the provider from universal_rebuild for 3 platforms: linux_amd64, windows_amd64, darwin_amd64
  • Creates ZIPs and SHA256SUMS
  • Signs SHA256SUMS with a local GPG key file
  • Uploads artifacts to S3 for the registry server to serve

Requirements

  • Go 1.22+
  • python3 (for zipfile)
  • gpg
  • mc (MinIO/S3 client)

GPG key file

Store the private key at:

  • secrets/private_key.asc (ignored by git)

The public key is at:

  • secrets/public_key.asc

The registry server embeds the public key it returns to Terraform. After regenerating keys:

  • Update the embedded ASCII Armor in registry-server-build/main.go and operator/cmd/registry/main.go.
  • Rebuild and redeploy the registry server.
  • Re-upload provider artifacts signed with the new private key.

Environment

Set these variables before running:

  • S3_ENDPOINT (example: s3.msk-1.ngcloud.ru)
  • S3_ACCESS_KEY
  • S3_SECRET_KEY

Optional overrides:

  • REGISTRY_HOSTNAME (default: terra.k8c.ru)
  • NAMESPACE (default: nubes)
  • NAME (default: nubes)
  • S3_BUCKET (default: terraform-registry)

Usage

export S3_ENDPOINT="s3.msk-1.ngcloud.ru"
export S3_ACCESS_KEY="..."
export S3_SECRET_KEY="..."

./registry-server-build/build-provider.sh 2.0.2

Artifacts are uploaded to: registry/<bucket>/<hostname>/<namespace>/<name>/<version>/