Plan a new IA for Infrastructure management docs
Proposal
Work with TW Leadership and with ~"devops::configure" PM and engs to outline a new IA for the Infrastructure management docs.
Final proposal
.
+-- Manage your infrastructure
| +-- IaC
| +-- Terraform integrations
| +-- Terraform state
| +-- GitOps
| +-- Kubernetes clusters
| +-- Connect your cluster
| +-- Agent
| +-- RBAC access controls
| +-- Multiple clusters per project
| +-- Group-level clusters
| +-- Instance-level clusters
| +-- Manage your cluster
| +-- Project template
| +-- Integrate third-party apps
| +-- Cost management
| +-- Protect your apps
| +-- Deploy to your cluster
| +-- Using GitLab CI/CD Tunnel
| +-- Using a manifest project
| +-- Pull-based deployments
| +-- Inventory object
| +-- CI/CD environments
| +-- Canary deployments
| +-- Serverless
| +-- Deploy Boards
| +-- Pod logs
| +-- Runbooks
Reorg pages
-
Manage your infrastructure (create an overview on the topic => replaces the content of /user/infrastructure/iac/index.md
)-
IaC (move the content of https://docs.gitlab.com/ee/user/infrastructure/ to { /user/infrastructure/iac/index.md
})-
Terraform integrations (move the content of https://docs.gitlab.com/ee/user/infrastructure/mr_integration.html to { /user/infrastructure/iac/mr_integration.md
}) -
Terraform state (move the content of https://docs.gitlab.com/ee/user/infrastructure/terraform_state.html to { /user/infrastructure/iac/terraform_state.md
})
-
-
GitOps (create new page { /user/infrastructure/gitops/index.md
}) -
Kubernetes clusters (move the content of https://docs.gitlab.com/ee/user/project/clusters/ to { /user/infrastructure/clusters/index.md
})-
Connect your cluster (new doc { user/infrastructure/clusters/connect/index.md
})-
New GKE cluster https://docs.gitlab.com/ee/user/infrastructure/clusters/connect/new_gke_cluster.html -
Connect existing clusters { user/infrastructure/clusters/connect/index.md#connect_existing_clusters
}-
Through the Kubernetes Agent (move the content of https://docs.gitlab.com/ee/user/clusters/agent) {to user/infrastructure/clusters/agent/index.md
} -
Through cluster certificates(https://docs.gitlab.com/ee/user/project/clusters/add_existing_cluster.html)
-
- RBAC access controls https://docs.gitlab.com/ee/user/project/clusters/cluster_access.html
- Multiple clusters per project https://docs.gitlab.com/ee/user/project/clusters/multiple_kubernetes_clusters.html
- Group-level clusters https://docs.gitlab.com/ee/user/group/clusters/
- Instance-level clusters https://docs.gitlab.com/ee/user/instance/clusters/
-
-
Manage your cluster (ideally - new doc under { user/infrastructure/clusters/manage/index.md
})- Project template (https://docs.gitlab.com/ee/user/clusters/management_project_template.html)
- Integrate third-party apps (https://docs.gitlab.com/ee/user/clusters/integrations.html)
- Cost management (https://docs.gitlab.com/ee/user/clusters/cost_management.html)
- Protect your apps (https://docs.gitlab.com/ee/user/project/clusters/protect/)
-
Deploy to your cluster (ideally - new doc under { user/infrastructure/clusters/deploy/index.md
})- Using GitLab CI/CD Tunnel (https://docs.gitlab.com/ee/user/clusters/agent/ci_cd_tunnel.html)
- Using a manifest project
-
Pull-based deployments { /user/infrastructure/clusters/deploy/pull_based.md
} -
Inventory object (coming in gitlab!64155 (merged) - /user/infrastructure/clusters/deploy/inventory_object.md
)
-
- CI/CD environments (https://docs.gitlab.com/ee/user/clusters/environments.html)
- Canary deployments (https://docs.gitlab.com/ee/user/project/canary_deployments.html)
- Serverless (https://docs.gitlab.com/ee/user/project/clusters/serverless/index.html)
- Deploy Boards (https://docs.gitlab.com/ee/user/project/deploy_boards.html)
- Pod logs (https://docs.gitlab.com/ee/user/project/clusters/kubernetes_pod_logs.html)
-
- Runbooks (https://docs.gitlab.com/ee/user/project/clusters/runbooks/)
-
Goal: iteratively move all files to end up with the following file tree structure:
Topic | Current dir | New dir | Final nav level |
---|---|---|---|
Use GitLab | user/* |
user* |
1 |
Manage your infrastructure | user/infrastructure/* |
user/infrastructure/* |
2 |
IaC | user/infrastructure/* |
user/infrastructure/iac/* |
3 |
GitOps | spread | user/infrastructure/gitops/* |
3 |
Clusters |
/user/project/clusters/* + /user/clusters/*
|
/user/infrastructure/clusters/* |
3 |
Connect clusters | spread | /user/infrastructure/clusters/connect/* |
4 |
Agent | /user/clusters/agent/* |
user/infrastructure/clusters/connect/agent/* |
5 |
Manage clusters | spread | /user/infrastructure/clusters/manage/* |
4 |
Deploy to clusters | spread | /user/infrastructure/clusters/deploy/* |
4 |
Runbooks | user/project/clusters/runbooks/ |
user/infrastructure/runbooks/ |
3 |
MVC:
I talked to @sselhorn and we got into a doable plan.
I'll start by organizing the nav into workflow topics:
- Manage your infrastructure
- IaC
- GitOps
- Kubernetes clusters
- Connect your cluster
- Manage your cluster
- Deploy to your cluster
- Runbooks
For that, we'll need high-level pages for each topic:
-
Manage your infrastructure user/infrastructure/index.md
-
IaC user/infrastructure/iac/index.md
-
GitOps user/infrastructure/gitops/index.md
-
Kubernetes clusters user/infrastructure/clusters/index.md
-
Connect your cluster: user/infrastructure/clusters/connect/index.md
-
Manage your cluster: user/infrastructure/clusters/manage/index.md
-
Deploy to your cluster user/infrastructure/clusters/deploy/index.md
-
-
Runbooks
-
These pages will link to existing docs. Once we have them, we can start moving content from the older folders into the new ones iteratively.
Initial proposal:
- Infrastructure (create an overview on the topic - replaces the content of https://docs.gitlab.com/ee/user/infrastructure/)
- IaC (move the content of https://docs.gitlab.com/ee/user/infrastructure/terraform_state.html to
/user/infrastructure/iac/terraform_state.md
) - Clusters (currently https://docs.gitlab.com/ee/user/project/clusters/ - ideally under
/user/infrastructure/clusters/index.md
)- Create a new cluster (new method - through IaC - gitlab#334024 (closed))
- Add existing cluster (https://docs.gitlab.com/ee/user/project/clusters/add_existing_cluster.html)
- Configure your cluster (?)
- k8s Agent (https://docs.gitlab.com/ee/user/clusters/agent/)
- GitOps (is this the best place for GitOps? Create sep page, under
/user/infrastructure/gitops/index.md
or underuser/infrastructure/clusters/gitops/index.md
or elsewhere?) - Serverless (https://docs.gitlab.com/ee/user/project/clusters/serverless/index.html)
- Cluster access controls (https://docs.gitlab.com/ee/user/project/clusters/cluster_access.html)
- Manage your cluster (?)
- Manage cluster applications (project template doc) (https://docs.gitlab.com/ee/user/clusters/management_project_template.html)
- Integrate third-party apps (https://docs.gitlab.com/ee/user/clusters/integrations.html)
- Cluster environments (https://docs.gitlab.com/ee/user/clusters/environments.html)
- Cluster cost management (https://docs.gitlab.com/ee/user/clusters/cost_management.html)
- Deploy to your cluster (https://docs.gitlab.com/ee/user/project/clusters/deploy_to_cluster.html)
- Management project (https://docs.gitlab.com/ee/user/clusters/management_project.html)
- Canary deployments (https://docs.gitlab.com/ee/user/project/canary_deployments.html)
- Deploy Boards (https://docs.gitlab.com/ee/user/project/deploy_boards.html)
- Pod logs (https://docs.gitlab.com/ee/user/project/clusters/kubernetes_pod_logs.html)
- Runbooks (https://docs.gitlab.com/ee/user/project/clusters/runbooks/)
- Protect your apps (https://docs.gitlab.com/ee/user/project/clusters/protect/)
- Multiple clusters per project (https://docs.gitlab.com/ee/user/project/clusters/multiple_kubernetes_clusters.html)
- Group-level clusters (https://docs.gitlab.com/ee/user/group/clusters/)
- Instance-level clusters (https://docs.gitlab.com/ee/user/instance/clusters/)
- IaC (move the content of https://docs.gitlab.com/ee/user/infrastructure/terraform_state.html to
Edited by Marcia Ramos