# 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 ```bash 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//////`