Enable GitLab Team Members to contribute Infrastructure changes
## :sparkles: Summary
We will migrate canonical for `config-mgmt` to GitLab.com to reduce barriers for GitLab team members outside the Infrastructure department to contribute infrastructure changes, relying on Infrastructure maintainer reviews and policies to enforce best practices.
## :mag: Problem Statement
GitLab team members outside of infrastructure face significant barriers when contributing to `config-mgmt` or making infrastructure changes. These barriers create bottlenecks that limit our ability to scale infrastructure contributions across teams.
## :books: Background
### Current Access Challenges
* **Platform Barrier:** `config-mgmt` is hosted on `ops.gitlab.net` requiring team members to log into a separate instance.
* **Permission Gap:** Most team members lack default Developer permissions, requiring either:
* Adhoc Access Requests (AR) submissions
* Requesting infrastructure team members to make changes on their behalf.
This dependency model doesn't scale effectively, and positions infrastructure as an unintended bottleneck for cross-team collaboration, particularly as we try to move to a model where we are enabling GitLab team members outside of Infrastructure to contribute.
<details>
<summary>
**Why is ops the source of truth for this repo, and not others?**
</summary>
In 2018 there was a plan to move operations from GitLab.com to Ops: https://gitlab.com/gitlab-com/gl-infra/production-engineering/-/issues/5159
* config-mgmt - https://ops.gitlab.net/gitlab-com/gl-infra/config-mgmt
* chef-repo - https://gitlab.com/gitlab-com/gl-infra/chef-repo
* chef-cookbooks: https://gitlab.com/gitlab-cookbooks
* k8s-workloads: https://gitlab.com/gitlab-com/gl-infra/k8s-workloads/gitlab-com
* Helm charts: https://gitlab.com/gitlab-com/gl-infra/charts
Looking at https://ops.gitlab.net/gitlab-com/gl-infra it seems the majority of our configuration is actually managed on `.com` and mirrored to ops. `config-mgmt` is currently the outlier.
</details>
<details>
<summary>
**Does this go against the Component Ownership Model?**
</summary>
No. While the ultimate goal is that we shift infrastructure ownership left, the reality is that `config-mgmt` which is the source of truth for much of our infrastructure today is going to be maintained for a long time. Enabling contributions to this repository outside of the Infrastructure department will reduce friction experienced by GitLab team members.
Related Handbook MR: https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/14787
</details>
### Examples
DNS Configuration: Engineers raising requests that should be capable of self-serving:
* https://gitlab.com/gitlab-com/gl-infra/production-engineering/-/issues/27098+
* https://gitlab.com/gitlab-com/gl-infra/production-engineering/-/issues/26980+
* https://gitlab.com/gitlab-com/gl-infra/production-engineering/-/issues/25833+
## :rocket: Approach
Migrate `config-mgmt` to GitLab.com.
Considerations:
* Ensure auditable processes are maintained.
* Ensure Atlantis is configured appropriately.
* Ensure MR history is retained.
* Ensure only infrastructure can apply changes.
* Policies put in place to prevent any unexpected changes to infrastrcture.
* Ensure processes are in place for seamless disaster recovery.
* Notify team members to update their remotes.
## :dart: Exit Criteria
* [ ] Audibility is maintained for critical infrastructure components.
* [ ] The canonical repository for `config-mgmt` is managed on GitLab.com.
* [ ] Policies are in place to enforce infrastructure best practices.
* [ ] A process is in place (and exercised) for contributing to the mirror in case of emergency.
* [ ] Notifications are configured to reduce friction for reviewing pipeline output.
## DRI
TODO
### Participants
TODO
## Issue admin
```
/epic https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/1647
/label ~"group::Foundations" ~"workflow-infra::Triage" ~"Foundations::Project work"
```
<!--STATUS NOTE START-->
<!--STATUS NOTE END-->
epic