This repository serves as an entry-point for multiple community-maintained components in the Kubermatic ecosystem. Feedback is highly encouraged 👍
Dedicated components for customer purposes.
| Name | Description | 
|---|---|
| Overview Manage Cluster via API/Cluster CRD with GitOps Tooling | |
| api/cluster-management-by-api | Bash based management scripts to specify your KKP cluster by API for CI/CD or GitOPs purposes, see Cluster Provisioning by API via Bash/Curl. | 
| api/terraform-kkp-cluster-provider | Terraform based management of KKP user cluster for GitOps, see KKP Terraform REST Provider. | 
| api/cluster-management-by-crds | Management of KKP user cluster via Cluster or ClusterTemplate objects as .yaml files for GitOps, see Cluster management for KKP with Cluster CRDs | 
| certificates/self-signed-ca | How to create and managed self-signed CA at KKP | 
| controllers/aws-private-ip-enforce-controller | Enforces the assignPublicIP: false flag on all user cluster machine deployments | 
| controllers/component-override-controller | This bash-controller watches over Cluster objects and controls part of the spec.componentOverride. | 
| controllers/external-dns-route53 | external-dns is a controller that automatically creates dns records for your ingresses and loadbalancer services. This is a chart that deploys an opinionated configuration for working with AWS Route 53 | 
| controllers/pod-cidr-controller | This bash-controller watches over Cluster objects and patches spec.clusterNetwork.pods.cidrBlocks | 
| cron-jobs/scale-down | running a cron job that scales down worker nodes during non work hours and weekends. | 
| id-management/active-directory | Example how to configure KKP with Active Directory | 
| id-management/openldap | Helm based OpenLDAP setup to deploy a indipendent LDAP server into Kubernetes for testing purposes | 
| id-management/keycloak | Example on how to configure and integrate KeyCloak setup as custom OIDC provider into Kubermatic KKP | 
| loadbalancers/metallb | Example config for MetalLB what aims to redress this imbalance by offering a Network LB implementation that integrates with standard network equipment | 
| logging/audit/static-audit-log | Description how static audit logging could get configured | 
| vm-images/packer-ubuntu1804-vsphere-template | A packer template to customize an ubuntu 18.04 cloud-image on vSphere | 
| s3/s3-syncer-aws-cli | s3-syncer based CronJob on the aws s3 cli to sync two different S3 locations as well Azure (by Minio Azure Gateway) | 
| s3/s3-dbdump-syncer | s3-syncer based CronJob creates a DB dump of a postgres SQL database and sync it via the aws s3 cli to a target S3 location. | 
| vmware-exporter | Helm chart for VMware Exporter and Dashboard for Prometheus and Grafana for monitoring of vSphere environments in the KKP MLA stack. | 
| nutanix-exporter | Helm chart for nutanix-exporter - exporter for Prometheus that can be used for monitoring of Nutanix-based environments. | 
| user-cluster-alertmanager-alerts | Set of user-cluster alert rules for usage with User-Cluster MLA. See cluster-mamangement-by-api to deploy Alertrules programatically. | 
| user-cluster-grafana-dashboards | Set of user-cluster grafana dashboards for usage with User-Cluster MLA. | 
| kubevirt | Help Components for e.g. installing kvm quemu packages on baremetal. | 
| Name | Description | 
|---|---|
| vSphere kubeOne / Kubermatic demo | an example for running kubermatic on vSphere with kubeOne to install the | 
| AWS EKS -D kubeOne demo | an example for creating a Cluster running Amazon EKS-D | 
| Bare Metal - KubeOne Static Hosts | Example how to managed static bare metal workers. The "bare metal" workers are simulated with vSphere by terraform automation | 
| Bare Metal - KKP and kubeadm join implementation examples | Example how to use kubeadm to join the KKP managed controlplan: 1 Manual Example, 2 SSH Multi Client join script | 
| Baremetal node provisioning with OSM | This method allows you to provision a baremetal machine as a Kubernetes node, using the provisioning logic of OSM as provided by the specific OSP. | 
Configuration and tooling for common used KKP - Guides - Addon for user cluster customization.
| Name | Description | 
|---|---|
| Makefile | Wrapper for building KKP addons for a dedicated version | 
| addon-manifests | Holding the AddonConfig custom resource specifications for a set of addons to configure KKP UI | 
| custom-addon/dns-resolve-overwrite | A DaemonSet with privileged permissions to overwrite the host DNS at the kubernetes nodes | 
| custom-addon/echoserver | Simple echo server application as an example workload deployment with ingress config | 
| custom-addon/ingress-nginx | Deploys the Ingress Nginx Controller to the user cluster | 
| custom-addon/trident-installer | Addon for NetApp Trident storage support into a user cluster | 
| custom-addon/openebs | OpenEBS addon for on-premise users without distributed storage | 
| custom-addon/amd-gpu | AMD-GPU device plugin addon | 
| custom-addon/kubeflow | Kubeflow Machine Learning Toolkit | 
| custom-addon/ntp-sync | DaemonSet to execute ntpdate primary secondary scheduled on every node of a cluster | 
| custom-addon/docker-pull | DaemonSet to pull e.g. docker.io based images on every node with a docker-secret, to prevent rate-limited infrastructure pods. | 
| custom-addon/flux2 | Deploys Flux for keeping your Kubernetes clusters in sync with sources of configuration (like Git repositories). | 
| custom-addon/argocd | Deploys ArgoCD - a declarative, GitOps continuous delivery tool for Kubernetes (as high availability installation). | 
| ------- ARCHIVED --- | |
| custom-addon/helm-operator | Deploys the FluxCD - Helm Operator for managing additional deployment trough Helm by CRD | 
| custom-addon/loki-stack | (Requires Helm Operator) Add Grafana Loki stack based on Grafana Loki Charts | 
| custom-addon/theia-ide | Customized KKP addon for quickly using Eclipse Theia IDE at your Kubernetes cluster. | 
| custom-addon/metallb | MetalLB cluster addon for on-premise user cluster without native LB support | 
| custom-addon/metallb-v2 | MetalLB cluster addon for on-premise user cluster without native LB support - with advanced config options, see MetalLB - Configuration. Used if IP range config is not enough. | 
| custom-addon/archive/kube-proxy-ipvs-patch | Custom overwrite Addon to patch IPVS mode to strictARP: true. | 
Configuration and tooling for common used KKP - Guides - Application for user cluster customization.
| Name | Description | 
|---|---|
| README.md - Values | Sample values yaml for the Applications | 
| argocd-app | Argo CD - Declarative Continuous Delivery for Kubernetes. | 
| echoserver-app | Echo Server Example App | 
| eclipse-che-app | Preconfigured Eclipse Che IDE App | 
| external-dns-app | Using externalDNS to manage DNS Entries in an automated way in scope of an KKP user cluster | 
| flux2-app | Flux GitOps sync tool for application deployment | 
| harbor-app | Harbor App for user Clusters | 
| sysdig-secure-app | Sysdig Secure Integration for KKP User Clusters | 
| hivemq-app | HiveMQ Operator App to manage HiveMQ clusters in KKP user clusters | 
Some useful containers to work with KubeOne and KKP
| Name | Description | 
|---|---|
| kubeone-tool-container | A docker container with various tools to work with KubeOne and Kubernetes | 
| kubermatic-dev-ui | Complete DEV UI Container including KubeOne and various tools to work with KubeOne, KKP and Kubernetes via a Frontend UI | 
List of helper scripts and tools
| Name | Description | 
|---|---|
| git-crypt | git-crypt is a tooling to encrypt git repositories based GPG keys | 
| kubeone-makefile | Contains a template Makefile to manage KubeOne deployments | 
| kubermatic-installer-script | Contains a standalone usage of kubermatic - deploy.sh repo installation script for own installations. | 
| kubermatic-makefile | Contains a template Makefile to manage kubermatic deployments | 
| ssh-debug | SSH Debug Client for quickly ssh to nodes in an internal network | 
| vault/vault-k8s-mapper | Maps Vault secret as native Kubernetes secret into a defined namespace/secret. | 
| vault/vault-kv-management.sh | Management script to up/download secrets to a vault secret kv store. | 
| delete-evicted-pods-all-ns.sh | Deletes pods in state evicted | 
| headless.vnc.test.container.yaml | docker-headless-vnc-container container containing Linux UI exposed via webvnc for testing e.g. dashboards from internal cluster view | 
| kill-kube-ns.sh | kills a pending kubernetes namespace | 
| kube-node-cleanup.sh | cleanup a kubernetes node with some potential leftovers | 
| kubeconfig-kubermatic-serviceaccount.sh | creates an kubermatic service account at an seed cluster | 
| machinedeployment-patch.gce.sh | Scripts patches some specification of an Cluster API MachineDeployment object. | 
| set-build-tags-to-image.sh | Set dedicated build tags to the Kubermatic Charts | 
| untaint_master.sh | untaints all master nodes, to be able to schedule workload | 
| bash-port-scanner.sh | A Bash bases Port-Scanner which is able to scan ports without any dependencies or tools like nmap | 
| pvc.test.yaml | small pod + pvc to test if storage provisioning works | 
| refresh-all-service-accounts-in-cluster.sh | script to refresh all service accounts token (stored as secrets) and restart dependent pods semi-automatic | 
| local-connect-k8s-services.sh | A small helper script to kubectl port-forward a handful of service, in the example the typical MLA services prometheus, grafana, alertmanager | 
| ssh-jumphosts-template.sh | Template to create a jumphost script with predefined enviroments. | 
| Infrastructure benchmarking | Documentation on how to benchmark various infrastrucutre elements used for hosting a kubernetes cluster. | 
| KKP Project Viewer Service Account | Adding a service account with view-only rights to your KKP Master Cluster | 
| KubeVirt Debug VM (Ubuntu) | KubeVirt Ubuntu VM with SSH add cloud-init to test or debug kubevirt environments | 
Helpful how-tos and detailed documentation:
| Name | Description | 
|---|---|
| setup-checklist/kkp | Detailed requirement documentation to setup Kubermatic KKP at different environments | 
| setup-checklist/kubeone | Detailed requirement documentation to setup KubeOne at different environments | 
| how-to-convert-to-docx | Commands to convert markdown to docx | 
| migrate-helm2-to-helm3 | This document shows you how to migrate Heml releases from using Helm version 2.x with Tiller to being managed by Helm version 3.x in place. | 
| node-health-check | This doc describes how Kubermatic node health checks works | 
| nvidia-gpu-operator | How to enable GPU support for KKP clusters by NVIDIA - GPU Operator | 
| offline-setup | How to run kubermatic in offline environments | 
| upload-ova-with-govc | How to upload ova by using govc | 
| how-to-collect-cluster-cpu-memory.md | How to collect the provisioned CPU/Memory of Kubernetes Clusters | 
Guides how to operate KubeOne / KKP.
| Name | Description | 
|---|---|
| metallb-service-connection-drops-ipvs-strict-arp | Connection Drops of Service Type LoadBalancer provided by MetalLB. | 
| user-cluster-prometheus.md | Crash Looping Prometheus at KKP user cluster namespace | 
| manual-backup | How to create manual backup for your KKP/KubeOne setup. | 
| k8s-kubeconfig-expiring-failure.md | Expiring kubeconfig client certificate (at KubeOne Cluster example) | 
If you encounter issues file an issue or talk to us on the #kubermatic channel on the Kubermatic Slack.
Thanks for taking the time to join our community and start contributing!
Feedback and discussion are available on #kubermatic channel.
- Please familiarize yourself with the Code of Conduct before contributing.
 - See CONTRIBUTING.md for instructions on the developer certificate of origin that we require.
 
- We welcome pull requests. Feel free to dig through the issues and jump in.
 
See the list of releases to find out about feature changes.