shalb / cluster.dev

Cloud-native infrastructure templating. Creating cloud installers for SaaS. Replication of complex cloud-native infrastructures.
https://docs.cluster.dev/
GNU Affero General Public License v3.0
401 stars 36 forks source link

Implement DigitalOcean Kubernetes Provisioner #56

Closed voatsap closed 4 years ago

voatsap commented 4 years ago

We need to implement DigitalOcean Provisioner support:

cluster:
  installed: true
  name: do-test
  cloud:
    provider: do
    region: fra-1
    project: default
    domain: create
  provisioner:
    type: digitalocean-kubernetes
    version: v1.16-do.1
    nodeCount: 3
    nideSize: s2vcpu-2gb
    autoscalling: true
    autoscale_min: 3
    autoscale_max: 5
  addons:
    nginx-ingress: true
    cert-manager: true
  apps:
    - /kubernetes/apps/samples

Should be implemented:

  1. Create a storage for remote Terraform state at DigitalOcean Spaces (for refference AWS state Could be used
  2. Create or define a project as we have in AWS VPC
  3. Create or define dns zone on DO DNS service as example: user.cluster.dev
  4. Deploy cluster itself based on DigitalOcean Managed Kubernetes, (should be done as a separate external module) but invoked during reconcilation job.
  5. Deploy nginx-ingress/cert-manager/external-dns/argo-cd as addons to Kubernetes