cloud-native-toolkit / cloud-native-toolkit/software-everywhere

Create terraform provider resources to replace common gitops submodules

Open
#498 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
8
Forks
8
PR merge metrics
No merged PRs in 30d

Description

There are a number of modules that are commonly used as submodules across the gitops logic. These submodules encapsulate common logic that is reused from module to module. However, it also creates an issue managing the versions of submodules. Currently, these submodule versions are unpinned across many/most of the modules. This means they will pick up the latest version of the submodule when the terraform is applied. However, pinning the version in the module requires a lot of maintenance to upgrade the modules versions as new ones become available.

The middle-ground alternative is to turn these submodules into resources of the gitops terraform provider. That way, the version of the provider can be pinned within the terraform template when it is generated by iascable (pending task - [cloud-native-toolkit/iascable#136](https://github.com/cloud-native-toolkit/iascable/issues/136) ) and propagate to all of the modules. There are 6 such resources that would be needed:

- [ ] service account
- [ ] rbac
- [ ] pull secret
- [ ] sccs
- [ ] namespace(1)
- [ ] sealed secrets

1. We have a namespace resource but it is very limited in what it does. The namespace submodule has additional logic currently. That logic should be moved into the resource so the namespace module can be made very thin.

Essentially this entails moving the logic from the terraform module down into either the Go code of the provider, the javascript code of the igc cli, a helm chart that addresses the configuration options, or some combination.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.