-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Share registry setup as infrastructure as code #275
Comments
As an example, #168, is labeled as a |
Right now we've set things up manually (Mainly because it was super easy to set up an r2 bucket fronted by a url in cloudflare). But I do think you're right, we should generate some IaC for this so that others can reproduce it and host their own registry easily. |
I think we might need to document how to run the registry generation manually first. |
@janosdebugs I have been able to run it myself by digging into the GitHub workflows.
I made a small HTTPS server for local testing. I created local certificates with
This was good enough for fetching providers and modules. |
I think @virtualroot's point that the first need is documentation is well founded. I expect there are a number of different environments this would get deployed into so there isn't a "one size fits all" standard for the code. Also, in order to support and simplify this documentation, I also think having clear versioned releases would be important. This way the deployment documentation can assume the release process. Maybe that's less a thing in a Go project, but I also think us more "Operations" type guys will benefit from familiarity. Also, I'm looking at this from an air-gapped environment perspective, I would appreciate having a strong ability to host a registry inside my disconnected environments that can be updated easily. A clearly versioned release is easier to ingress than a codebase. I'd be happy to see this as a containerized application and some kubernetes manifests as a starting point. If that documentation and a versioned release existed, that is even the sort of thing I'd happily write a PR around or run as a separate project if that would be preferred. |
@flickerfly the current registry is not designed to be reusable as it is hardwired to use GitHub as a source. Also, there won't be a container manifest because the registry doesn't have a server component, it relies entirely on static generated data and a server (Cloudflare R2 in our case) to serve it. |
Gotcha, so no matter what, I'd need to wrap what is "registry" in my own nginx container, download the required artifacts or something like that to self-host/airgap it. Is that a correct understanding? |
@flickerfly no, the registry is merely an index of the releases available from GitHub, we don't host the release binaries or modules. For an airgap you will need to mirror the release binaries/module repos too. The OpenTorfu registry is entirely unsuitable for that. I would look into the large number of self-hosted Terraform/OpenTofu registries out there instead. I believe GitLab has one, but I'm not sure. |
@janosdebugs Thank you for taking the time to correct. I use the GitLab one now, but I'm interested in something light-weight outside a development environment. I'll poke around elsewhere! |
@flickerfly have a look here https://github.com/virtualroot/awesome-opentofu?tab=readme-ov-file#registry. One of those should fit your use case. 🤞 |
Description of the feature you are looking for.
It's impossible to help as a collaborator with some issues as the setup isn't shared and can't be reproduced.
Are there plans to share the setup as IaC?
The text was updated successfully, but these errors were encountered: