Files
kubernetes/README.md
Daniël Groothuis dff6e22868
All checks were successful
Validate K8s manifests / validate-manifests (push) Successful in 2m8s
chore(penpot): Added OIDC configuration for SSO
2025-10-27 19:04:41 +01:00

3.4 KiB

Production status

Kubernetes GitOps with ArgoCD for DGSE Cloud

This repository contains the Kubernetes manifests and configurations for deploying and managing applications on the DGSE Cloud using GitOps with ArgoCD.

Overview

The DGSE Cloud Kubernetes GitOps setup leverages ArgoCD to automate the deployment and synchronization of Kubernetes resources from this Git repository to the DGSE Cloud cluster. This approach ensures that the desired state of the cluster is defined as code and can be version-controlled, audited, and rolled back if necessary.

Repository Structure

The repository is organized as follows:

Clusters

  • Artemis Cluster (Primary DGSE Cloud cluster)

Core Applications

  • ArgoCD: The GitOps operator for managing Kubernetes applications.
  • Cert-Manager: For managing TLS certificates.
  • Traefik: The ingress controller for routing external traffic.
  • Gitea: The self-hosted Git service for version control.
  • Gitea Runners: The runners for executing CI/CD pipelines.
  • Uptime Kuma: The uptime monitoring tool for tracking application availability.
  • Vault: The secrets management tool for securely storing sensitive data.
  • External Secrets: The operator for managing secrets from external sources.
  • CNPG: The Cloud Native PostgreSQL operator for managing PostgreSQL databases.
  • Mailu: The mail server for sending and receiving emails.
  • PocketID: The identity provider for managing user authentication and authorization.

Miscellaneous Applications

  • Penpot: The open-source design and prototyping tool.
  • Ntfy: The notification service for sending alerts and notifications.

Public Websites

  • Groothuis.io: Personal Development notes and wiki
  • DanielGroothuis.com: Personal website and blog

File Locations

/clusters/artemis/apps Hosts all ArgoCD applications and projects for the Artemis cluster.

/manifests/artemis Hosts all Kubernetes manifests for the Artemis cluster.

/clusters/artemis/cluster.yaml General cluster configuration for the Artemis cluster.

Adding a new Application

To add a new application to any of the clusters, run the following commands:

chmod +x ./init-app.sh
./init-app.sh

This will prompt you to enter the name of the application and the cluster you want to add it to. The script will then create the necessary files and directories for the application.

It'll add a .placeholder file where the manifests will live.

Important URLs

  • ArgoCD (SSO Authentication required)
  • Gitea (SSO Authentication required)
  • Vault (Token Based Authentication required)
  • Vaultwarden (Basic Authentication required)
  • Mailu (Basic Authentication required)
  • PocketID (SSO Authentication required)
  • Uptime Kuma (Basic Authentication required)
  • Ntfy (Basic Authentication required)
  • Penpot (SSO Authentication required)

Important Notes

  • When adding a new application, keep in mind that after push to main, ArgoCD will automatically sync the resources to the cluster.
  • When using secrets, use Vault to store them and reference them in the manifests.