Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
f7f5886
feat: add Civo Project cluster template
jokestax Feb 19, 2026
c2abbae
fix: values.yaml
jokestax Feb 19, 2026
661bc44
fix: workload cluster template
jokestax Feb 19, 2026
7e81fd0
fix: workload cluster template
jokestax Feb 19, 2026
26d4165
fix: workload cluster template
jokestax Feb 19, 2026
63c7d00
fix: workload cluster template
jokestax Feb 19, 2026
4c9495f
fix: workload cluster template
jokestax Feb 19, 2026
7b8f0b4
fix: workload cluster template
jokestax Feb 19, 2026
787aa29
fix: remove secret store
jokestax Feb 20, 2026
abb361f
fix: add project var
jokestax Feb 20, 2026
a788ef9
fix: sync wave number
jokestax Feb 20, 2026
87a26dc
fix: sync wave number
jokestax Feb 20, 2026
beedf00
fix: sync wave number
jokestax Feb 20, 2026
21006cb
fix: sync wave number
jokestax Feb 20, 2026
d40836b
fix: sync wave number
jokestax Feb 20, 2026
35daa11
feat: add cert issuers
jokestax Feb 20, 2026
540fb57
feat: add cert manager
jokestax Feb 20, 2026
ebd87b5
feat: add cert manager
jokestax Feb 20, 2026
a2abfa1
fix: external dns
jokestax Feb 20, 2026
d9cb186
fix: namespace creation
jokestax Feb 20, 2026
286e0d0
fix: remove bootstrap
jokestax Feb 20, 2026
0a70aa5
fix: add argocd ns
jokestax Feb 21, 2026
9abe735
fix: add argocd ns
jokestax Feb 21, 2026
23a917c
fix: add crossplane secrets
jokestax Feb 21, 2026
8d60e99
fix: add argocd ns
jokestax Feb 23, 2026
abeeda3
fix: add argocd ns
jokestax Feb 23, 2026
540b912
feat: use ghcr workflow
jokestax Mar 1, 2026
ed1b03a
fix: repo url helm template
jokestax Mar 23, 2026
b556fa8
feat: use github app
jokestax Mar 27, 2026
385dafd
fix: deploy
jokestax Mar 27, 2026
01b9307
fix: remove not required values
jokestax Apr 1, 2026
3dd05f9
feat: use token refresher
jokestax Apr 2, 2026
f9a77c5
feat: use token refresher
jokestax Apr 2, 2026
6006308
feat: use token refresher
jokestax Apr 2, 2026
76b20b1
feat: use token refresher
jokestax Apr 2, 2026
227e788
feat: use token refresher
jokestax Apr 2, 2026
8d98d1e
feat: use token refresher
jokestax Apr 2, 2026
46cc74e
feat: use token refresher
jokestax Apr 2, 2026
bfe39d6
feat: use token refresher
jokestax Apr 2, 2026
7112e74
feat: use token refresher
jokestax Apr 2, 2026
b4ff14c
feat: use token refresher
jokestax Apr 2, 2026
b90e3e7
feat: use token refresher
jokestax Apr 2, 2026
c30b544
feat: use token refresher
jokestax Apr 2, 2026
bd4fc4a
fix: pc terraform module
jokestax Apr 4, 2026
e4b73ab
feat: migrate to gateway api
jokestax Apr 12, 2026
502867d
feat: migrate to gateway api
jokestax Apr 12, 2026
d97df00
fix: sync wave
jokestax Apr 12, 2026
ea9aa27
fix: sync wave
jokestax Apr 12, 2026
f92c7db
fix: provider name
jokestax Apr 13, 2026
f27356f
fix: provider name
jokestax Apr 13, 2026
455b0da
fix: provider name
jokestax Apr 13, 2026
631664c
fix: remote url
jokestax Apr 13, 2026
9d0a312
fix: domain name
jokestax Apr 13, 2026
42c50f2
fix: path
jokestax Apr 13, 2026
fbdb740
fix: path
jokestax Apr 13, 2026
22fc0a8
fix: env
jokestax Apr 13, 2026
b4d0b29
feat: add more gitops catalog
jokestax Apr 13, 2026
f57241b
feat: add more gitops catalog
jokestax Apr 13, 2026
4979c1e
fix: perm
jokestax Apr 14, 2026
433e165
fix: prefix
jokestax Apr 14, 2026
ae1ecac
upgrade k8s version
jokestax Apr 15, 2026
3536675
upgrade k8s version
jokestax Apr 15, 2026
a845c31
upgrade k8s version
jokestax Apr 15, 2026
a32c7e2
upgrade k8s version
jokestax Apr 15, 2026
2154302
feat: GPU cluster template + catalog items (#33)
johndietz Apr 18, 2026
a289f10
feat(catalog): add ArgoCD Helm templates for 9 GitOps catalog items
johndietz Apr 19, 2026
a8b8710
fix(catalog): disable PodSecurityPolicy in groundcover template
johndietz Apr 19, 2026
f067b58
feat: change vars for workload cluster in Civo
jokestax May 15, 2026
5f84442
Update gpu.tf
jokestax May 16, 2026
a60eefb
fix: remove duplicates
jokestax May 16, 2026
fb26a07
fix: remove duplicates
jokestax May 17, 2026
7b5ba71
feat: upgrade version to 1.35
jokestax May 17, 2026
be9f6e9
feat: upgrade version to 1.35
jokestax May 17, 2026
2fd65a6
Update cluster configuration in values.yaml
johndietz May 18, 2026
7d6bf0c
Update values.yaml
jokestax May 18, 2026
b3b5978
fix: ns to v1
jokestax May 20, 2026
bfbd7b7
πŸ› fix(civo/project-cluster): correct external-dns domain and one-shot…
konstruct-e2e Jun 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions gitops-catalog/cert-manager/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v2
name: cert-manager
description: A Helm chart for deploying cert-manager with ArgoCD for automated TLS certificate management using ACME, self-signed, and other issuers
type: application
version: 0.1.0
appVersion: "1.17.1"
36 changes: 36 additions & 0 deletions gitops-catalog/cert-manager/templates/application.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: {{ .Values.clusterName }}-cert-manager
namespace: argocd
annotations:
kubefirst.konstruct.io/application-name: cert-manager
kubefirst.konstruct.io/source: catalog-templates
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: {{ .Values.namespace }}
name: {{ .Values.clusterDestination }}
project: {{ .Values.project }}
source:
chart: cert-manager
repoURL: https://charts.jetstack.io
targetRevision: {{ .Values.chartVersion }}
helm:
releaseName: cert-manager
values: |
crds:
enabled: {{ .Values.installCRDs }}
replicaCount: {{ .Values.replicas }}
prometheus:
servicemonitor:
enabled: {{ .Values.serviceMonitorEnabled }}
startupapicheck:
enabled: {{ .Values.startupapicheck }}
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
75 changes: 75 additions & 0 deletions gitops-catalog/cert-manager/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# cert-manager Configuration
# This values file contains all configurable parameters for deploying cert-manager via ArgoCD

# @input.type: string
# @input.description: Cluster name identifier
# @input.required: true
# @input.default: my-cluster
clusterName: my-cluster

# @input.type: string
# @input.description: GitOps repository URL for ArgoCD sync
# @input.required: true
# @input.default: https://github.com/example/gitops-repo
gitopsRepoUrl: https://github.com/example/gitops-repo

# @input.type: string
# @input.description: Registry path in GitOps repository
# @input.required: true
# @input.default: registry/clusters/my-cluster
registryPath: registry/clusters/my-cluster

# @input.type: string
# @input.description: Target cluster destination for ArgoCD
# @input.required: true
# @input.default: in-cluster
clusterDestination: in-cluster

# @input.type: string
# @input.description: ArgoCD project name
# @input.required: true
# @input.default: default
project: default

# @input.type: string
# @input.description: Namespace for cert-manager deployment
# @input.required: true
# @input.default: cert-manager
namespace: cert-manager

# @input.type: string
# @input.description: cert-manager Helm chart version
# @input.required: true
# @input.default: v1.17.1
chartVersion: v1.17.1

# =============================================================================
# CERT-MANAGER CONFIGURATION
# =============================================================================

# @input.type: enum
# @input.description: Install cert-manager CRDs (required for first install, disable if CRDs are managed separately)
# @input.options: true,false
# @input.required: true
# @input.default: true
installCRDs: true

# @input.type: number
# @input.description: Number of cert-manager controller replicas
# @input.required: true
# @input.default: 1
replicas: 1

# @input.type: enum
# @input.description: Enable Prometheus ServiceMonitor for cert-manager metrics
# @input.options: true,false
# @input.required: true
# @input.default: false
serviceMonitorEnabled: false

# @input.type: enum
# @input.description: Enable the cert-manager Startupapicheck job to verify API availability
# @input.options: true,false
# @input.required: true
# @input.default: true
startupapicheck: true
6 changes: 6 additions & 0 deletions gitops-catalog/envoy-gateway/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v2
name: envoy-gateway
description: A Helm chart for deploying Envoy Gateway with ArgoCD as a Kubernetes-native API gateway for managing ingress and traffic routing
type: application
version: 0.1.0
appVersion: "1.3.0"
36 changes: 36 additions & 0 deletions gitops-catalog/envoy-gateway/templates/application.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: {{ .Values.clusterName }}-envoy-gateway
namespace: argocd
annotations:
kubefirst.konstruct.io/application-name: envoy-gateway
kubefirst.konstruct.io/source: catalog-templates
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: {{ .Values.namespace }}
name: {{ .Values.clusterDestination }}
project: {{ .Values.project }}
source:
chart: gateway-helm
repoURL: https://gateway.envoyproxy.io/charts
targetRevision: {{ .Values.chartVersion }}
helm:
releaseName: envoy-gateway
values: |
deployment:
replicas: {{ .Values.replicas }}
config:
envoyGateway:
provider:
kubernetes:
enabled: {{ .Values.kubernetesProviderEnabled }}
createGatewayClass: {{ .Values.gatewayClassEnabled }}
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
68 changes: 68 additions & 0 deletions gitops-catalog/envoy-gateway/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Envoy Gateway Configuration
# This values file contains all configurable parameters for deploying Envoy Gateway via ArgoCD

# @input.type: string
# @input.description: Cluster name identifier
# @input.required: true
# @input.default: my-cluster
clusterName: my-cluster

# @input.type: string
# @input.description: GitOps repository URL for ArgoCD sync
# @input.required: true
# @input.default: https://github.com/example/gitops-repo
gitopsRepoUrl: https://github.com/example/gitops-repo

# @input.type: string
# @input.description: Registry path in GitOps repository
# @input.required: true
# @input.default: registry/clusters/my-cluster
registryPath: registry/clusters/my-cluster

# @input.type: string
# @input.description: Target cluster destination for ArgoCD
# @input.required: true
# @input.default: in-cluster
clusterDestination: in-cluster

# @input.type: string
# @input.description: ArgoCD project name
# @input.required: true
# @input.default: default
project: default

# @input.type: string
# @input.description: Namespace for Envoy Gateway deployment
# @input.required: true
# @input.default: envoy-gateway-system
namespace: envoy-gateway-system

# @input.type: string
# @input.description: Envoy Gateway Helm chart version
# @input.required: true
# @input.default: v1.3.0
chartVersion: v1.3.0

# =============================================================================
# ENVOY GATEWAY CONFIGURATION
# =============================================================================

# @input.type: number
# @input.description: Number of Envoy Gateway controller replicas
# @input.required: true
# @input.default: 1
replicas: 1

# @input.type: enum
# @input.description: Enable Kubernetes provider for gateway management
# @input.options: true,false
# @input.required: true
# @input.default: true
kubernetesProviderEnabled: true

# @input.type: enum
# @input.description: Install GatewayClass resource for Envoy Gateway
# @input.options: true,false
# @input.required: true
# @input.default: true
gatewayClassEnabled: true
6 changes: 6 additions & 0 deletions gitops-catalog/external-dns/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v2
name: external-dns
description: A Helm chart for deploying ExternalDNS with ArgoCD to automatically manage DNS records from Kubernetes resources
type: application
version: 0.1.0
appVersion: "1.15.1"
36 changes: 36 additions & 0 deletions gitops-catalog/external-dns/templates/application.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: {{ .Values.clusterName }}-external-dns
namespace: argocd
annotations:
kubefirst.konstruct.io/application-name: external-dns
kubefirst.konstruct.io/source: catalog-templates
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: {{ .Values.namespace }}
name: {{ .Values.clusterDestination }}
project: {{ .Values.project }}
source:
chart: external-dns
repoURL: https://kubernetes-sigs.github.io/external-dns/
targetRevision: {{ .Values.chartVersion }}
helm:
releaseName: external-dns
values: |
provider:
name: {{ .Values.provider }}
domainFilters:
- {{ .Values.domainFilters }}
policy: {{ .Values.policy }}
sources:
- {{ .Values.sources }}
txtOwnerId: {{ .Values.txtOwnerId }}
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
81 changes: 81 additions & 0 deletions gitops-catalog/external-dns/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# ExternalDNS Configuration
# This values file contains all configurable parameters for deploying ExternalDNS via ArgoCD

# @input.type: string
# @input.description: Cluster name identifier
# @input.required: true
# @input.default: my-cluster
clusterName: my-cluster

# @input.type: string
# @input.description: GitOps repository URL for ArgoCD sync
# @input.required: true
# @input.default: https://github.com/example/gitops-repo
gitopsRepoUrl: https://github.com/example/gitops-repo

# @input.type: string
# @input.description: Registry path in GitOps repository
# @input.required: true
# @input.default: registry/clusters/my-cluster
registryPath: registry/clusters/my-cluster

# @input.type: string
# @input.description: Target cluster destination for ArgoCD
# @input.required: true
# @input.default: in-cluster
clusterDestination: in-cluster

# @input.type: string
# @input.description: ArgoCD project name
# @input.required: true
# @input.default: default
project: default

# @input.type: string
# @input.description: Namespace for ExternalDNS deployment
# @input.required: true
# @input.default: external-dns
namespace: external-dns

# @input.type: string
# @input.description: ExternalDNS Helm chart version
# @input.required: true
# @input.default: 1.15.1
chartVersion: 1.15.1

# =============================================================================
# EXTERNAL DNS CONFIGURATION
# =============================================================================

# @input.type: enum
# @input.description: DNS provider (e.g., aws, cloudflare, google, azure, civo)
# @input.options: aws,cloudflare,google,azure,civo,digitalocean,rfc2136
# @input.required: true
# @input.default: aws
provider: aws

# @input.type: string
# @input.description: Comma-separated list of DNS zones to manage
# @input.required: true
# @input.default: example.com
domainFilters: example.com

# @input.type: enum
# @input.description: DNS record ownership policy (sync deletes unmanaged records, upsert-only is safer)
# @input.options: sync,upsert-only
# @input.required: true
# @input.default: upsert-only
policy: upsert-only

# @input.type: enum
# @input.description: Kubernetes resource types to watch for DNS records
# @input.options: ingress,service,istio-gateway,istio-virtualservice
# @input.required: true
# @input.default: ingress
sources: ingress

# @input.type: string
# @input.description: TXT record owner ID to avoid conflicts between multiple ExternalDNS instances
# @input.required: true
# @input.default: default
txtOwnerId: default
6 changes: 6 additions & 0 deletions gitops-catalog/external-secrets/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v2
name: external-secrets
description: A Helm chart for deploying External Secrets Operator with ArgoCD to sync secrets from external providers like AWS, Vault, and GCP into Kubernetes
type: application
version: 0.1.0
appVersion: "0.14.3"
Loading