Skip to content

lulzzz/daas-demo

 
 

Repository files navigation

Database-as-a-Service demo

A quick-and-dirty PaaS implementation using SQL Server in Linux containers on Kubernetes.

Requirements

  • .NET Core 2.0
  • A private Docker registry
    e.g. Azure Container Registry, or quay.io
  • A Kubernetes cluster
    If you don't have one yet, see the deploy/terraform/ddcloud and deploy/ansible directories for some scripts you can use to bring up a cluster managed by Rancher in Dimension Data's cloud.
  • A server for storage
    This server will need to export an NFS volume unless you have your own options for storage
  • A DNS A wildcard record pointing to your cluster nodes' public IPs

Deployment

Images

Run .\Build-Images.ps1 or ./build-images.sh.

Kubernetes Resources

Customise the files in deploy/k8s as required, and run kubectl create -f deploy/k8s/XXX, where XXX is:

  • rook
  • ravendb
  • elasticsearch
  • prometheus

Then run deploy/k8s/consul/install.sh, deploy/k8s/vault/install-vault.sh, and kubectl create -f deploy/k8s/vault/vault-svc.yml.

Configure Vault:

  • vault mount -path=/daas/pki pki
  • vault mount-tune -max-lease-ttl=87600h /daas/pki
  • vault write /daas/pki/root/generate/internal common_name=vault.<cluster-fqdn> ttl=87600h
  • vault write /daas/pki/roles/daas.server.database allowed_domains=database.<cluster-fqdn> allow_subdomains=true allow_bare_domains=true max_ttl=672h
  • vault write /daas/pki/roles/daas.user.database allowed_domains=database.<cluster-fqdn> allow_subdomains=true max_ttl=672h

Finally, run kubectl create -f deploy/k8s.

About

A quick-and-dirty PaaS implementation using SQL Server and RavenDB in Linux containers on Kubernetes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 37.8%
  • JavaScript 33.3%
  • CSS 22.0%
  • TypeScript 3.5%
  • Python 1.4%
  • HTML 1.4%
  • Other 0.6%