niqdev / do-k8s

Declarative pull-based GitOps repository of my DigitalOcean Kubernetes cluster

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

do-k8s

Build Status

This cluster definition is based on the common infrastructure for Continuos Deployment and Observability described in edgelevel/gitops-k8s and is customized for DigitalOcean

Setup

The bootstrap chart has two main purposes

To setup a cluster follow these instructions

  1. install the required tools
  2. create a 3 nodes Kubernetes cluster on DigitalOcean
  3. configure the DNS
  4. create a Personal Access Token
  5. apply the bootstrap chart
    make
  6. port-forward ArgoCD (see step 3) and override these application parameters from the UI
    • applications-do > digitalOceanToken with the Personal Access Token to create a LoadBalancer
    • applications-do > domain e.g. example.com
    • elasticsearch > volumeClaimTemplate.storageClassName with do-block-storage specific for DigitalOcean
    • TODO fix argocd secrets issue to automate the steps above
  7. Sync all the applications from the UI manually

Applications

Applications in this repository are defined in the parent applications-do chart and are logically split into folders which represent Kubernetes namespaces

ambassador namespace is dedicated for Ambassador and defines

  • an application with a service annotation to allow external-dns to automatically create DNS records and internally route all the requests
  • ambassador-mapping contains the definitions of all the routes in form of helm chart
    • ambassador.example.com
    • kubernetes-dashboard.example.com
    • kube-ops-view.example.com
    • prometheus.example.com
    • alertmanager.example.com
    • grafana.example.com
    • elasticsearch.example.com
    • cerebro.example.com
    • kibana.example.com
    • bot.example.com
    • TODO argocd.example.com

kube-do namespace is dedicated for system wide resources tightly coupled to DigitalOcean

  • external-dns synchronizes exposed Kubernetes Services and Ingresses with DNS providers

bot namespace is dedicated for a Scala pure FP bot to scrape the balance of mobile carriers

Resources

TODO

  • try to automate the bootstrap steps using the API

About

Declarative pull-based GitOps repository of my DigitalOcean Kubernetes cluster


Languages

Language:Shell 55.3%Language:Makefile 44.7%