Overview
The Civo provisioning process will:
- Create a Kubernetes management cluster in the Civo cloud.
- Create three virtual workload clusters for each default environment (development, staging & production).
- Create a
gitops
Git repository from our gitops-template and store it in your selected Git provider. - Install Argo CD bootstrapped against your
gitops
repository so your repository powers the platform, and become your source of truth. - Install all the platform applications using GitOps (from the
/registry
folder in thegitops
repository). - Apply Terraform to configure Vault (from the
/terraform/vault
folder in thegitops
repository). - Configure the
gitops
repository to automatically run Terraform executions through Atlantis. - Integrate Argo Workflows with your selected Git provider.
- Install Argo Workflows cluster workflow templates to build containers, publish Helm charts, and provide the GitOps delivery pipelines.
- Install metaphor, a sample application that uses this automation to demonstrate app delivery.
Applications
kubefirst civo create
provisions a local Civo Kubernetes cluster to host your cloud native environment locally.
Your Civo cluster will include:
Application | Description |
---|---|
Argo CD | GitOps Continuous Delivery |
Argo Workflows | Application Continuous Integration |
Atlantis | Terraform Workflow Automation |
cert-manager | Certificate Automation Utility |
ChartMuseum | Helm Chart Registry |
External Secrets Operators | Syncs Kubernetes secrets with Vault secrets |
GitHub Action Runner Controller | GitHub Self-Hosted CI Executor |
HashiCorp Vault | Secrets Management |
Metaphor | (development, staging, production) instance of sample Next.js app |
Ingress Nginx | Ingress Controller |
Applications
kubefirst civo create
provisions a local Civo Kubernetes cluster to host your cloud native environment locally.
Your Civo cluster will include:
Application | Description |
---|---|
Argo CD | GitOps Continuous Delivery |
Argo Workflows | Application Continuous Integration |
Atlantis | Terraform Workflow Automation |
cert-manager | Certificate Automation Utility |
ChartMuseum | Helm Chart Registry |
External Secrets Operators | Syncs Kubernetes secrets with Vault secrets |
GitLab Runner | GitLab Self-Hosted CI Executor |
HashiCorp Vault | Secrets Management |
Metaphor | (development, staging, production) instance of sample Next.js app |
Ingress Nginx | Ingress Controller |
Known Limitations
General
- Let's encrypt is limited to 50 weekly certificates with an additional limitations of 5 per subdomains. We use Let's encrypt to automatically create certificates for your domains. In most cases, this won't be an issue, but you may reach that limit if you create, and destroy often Kubefirst clusters using the same domain during a short period. You can use the Let's Debug Toolkit to check those, but note that the result isn't always valid.
Civo Specific
- Using subdomains with Civo DNS won't create virtual cluster successfully. You can do it using Cloudflare as a DNS provider or use root domain names.