cncf / devstats-helm-example

📈DevStats example deployment using Helm
Apache License 2.0
6 stars 11 forks source link

devstats-helm-example

DevStats Deployment on Kubernetes using Helm. This is an example deployment of few CNCF projects.

Helm chart in devstats-helm-example.

Adding new projects

See cncf/devstats-helm:ADDING_NEW_PROJECTS.md for informations about how to add more projects.

AWS configuration

Before using any of those script you need to define cncf AWS profile by modifying files in ~/.aws/ directory:

EKS cluster

If you want to use EKS cluster, there are some shell scripts in scripts directory that can be useful:

Helm and Tiller

You need to have a Helm client installed locally and Tiller installed on the cluser:

Domain, DNS and Ingress

Please configure domain, DNS and Ingress first, for example AWS.md.

SSL

Install SSL certificates using Let's encrypt and auto renewal using cert-manager: SSL.md.

Usage

You should set namespace to 'devstats' first: ./switch_namespace.sh devstats.

Please provide secret values for each file in ./secrets/*.secret.example saving it as ./secrets/*.secret or specify them from the command line.

Please note that vim automatically adds new line to all text files, to remove it run truncate -s -1 on a saved file.

List of secrets:

You can select which secret(s) should be skipped via: --set skipPGSecret=1,skipGitHubSecret=1,skipGrafanaSecret=1.

You can install only selected templates, see values.yaml for detalis (refer to skipXYZ variables in comments), example:

You can restrict ranges of projects provisioned and/or range of cron jobs to create via:

You can overwrite the number of CPUs autodetected in each pod, setting this to 1 will make each pod single-threaded

Please note variables commented out in ./devstats-helm-example/values.yaml. You can either uncomment them or pass their values via --set variable=name.

Resource types used: secret, pv, pvc, po, cronjob, deployment, svc

To debug provisioning use:

Architecture

Final deployments:

DevStats data sources:

Storage:

Database:

Cluster:

UI:

DNS:

SSL/HTTPS:

Ingress:

Deployment:

Resource configuration:

Secrets:

Docker images:

CI/CD:

Kubernetes dashboard

Architecture: