Awesome
terraform-kubernetes-addons
Main components
Name | Description | Generic | AWS | Scaleway | GCP | Azure |
---|---|---|---|---|---|---|
admiralty | A system of Kubernetes controllers that intelligently schedules workloads across clusters | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
aws-ebs-csi-driver | Enable new feature and the use of gp3 volumes | N/A | :heavy_check_mark: | N/A | N/A | N/A |
aws-efs-csi-driver | Enable EFS Support | N/A | :heavy_check_mark: | N/A | N/A | N/A |
aws-for-fluent-bit | Cloudwatch logging with fluent bit instead of fluentd | N/A | :heavy_check_mark: | N/A | N/A | N/A |
aws-load-balancer-controller | Use AWS ALB/NLB for ingress and services | N/A | :heavy_check_mark: | N/A | N/A | N/A |
aws-node-termination-handler | Manage spot instance lifecyle | N/A | :heavy_check_mark: | N/A | N/A | N/A |
aws-calico | Use calico for network policy | N/A | :heavy_check_mark: | N/A | N/A | N/A |
secrets-store-csi-driver-provider-aws | AWS Secret Store and Parameter store driver for secret store CSI driver | :heavy_check_mark: | N/A | N/A | N/A | N/A |
cert-manager | automatically generate TLS certificates, supports ACME v2 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | N/A |
cluster-autoscaler | scale worker nodes based on workload | N/A | :heavy_check_mark: | Included | Included | Included |
cni-metrics-helper | Provides cloudwatch metrics for VPC CNI plugins | N/A | :heavy_check_mark: | N/A | N/A | N/A |
external-dns | sync ingress and service records in route53 | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: |
flux2 | Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
ingress-nginx | processes Ingress object and acts as a HTTP/HTTPS proxy (compatible with cert-manager) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: |
k8gb | A cloud native Kubernetes Global Balancer | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
karma | An alertmanager dashboard | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
keda | Kubernetes Event-driven Autoscaling | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
kong | API Gateway ingress controller | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |
kube-prometheus-stack | Monitoring / Alerting / Dashboards | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |
loki-stack | Grafana Loki logging stack | :heavy_check_mark: | :heavy_check_mark: | :construction: | :x: | :x: |
promtail | Ship log to loki from other cluster (eg. mTLS) | :construction: | :heavy_check_mark: | :construction: | :x: | :x: |
prometheus-adapter | Prometheus metrics for use with the autoscaling/v2 Horizontal Pod Autoscaler in Kubernetes 1.6+ | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
prometheus-cloudwatch-exporter | An exporter for Amazon CloudWatch, for Prometheus. | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
prometheus-blackbox-exporter | The blackbox exporter allows blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP and ICMP. | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
rabbitmq-cluster-operator | The RabbitMQ Cluster Operator automates provisioning, management of RabbitMQ clusters. | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
metrics-server | enable metrics API and horizontal pod scaling (HPA) | :heavy_check_mark: | :heavy_check_mark: | Included | Included | Included |
node-problem-detector | Forwards node problems to Kubernetes events | :heavy_check_mark: | :heavy_check_mark: | Included | Included | Included |
secrets-store-csi-driver | Secrets Store CSI driver for Kubernetes secrets - Integrates secrets stores with Kubernetes via a CSI volume. | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
sealed-secrets | Technology agnostic, store secrets on git | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
thanos | Open source, highly available Prometheus setup with long term storage capabilities | :x: | :heavy_check_mark: | :construction: | :x: | :x: |
thanos-memcached | Open source, highly available Prometheus setup with long term storage capabilities | :x: | :heavy_check_mark: | :construction: | :x: | :x: |
thanos-storegateway | Additional storegateway to query multiple object stores | :x: | :heavy_check_mark: | :construction: | :x: | :x: |
thanos-tls-querier | Thanos TLS querier for cross cluster collection | :x: | :heavy_check_mark: | :construction: | :x: | :x: |
Submodules
Submodules are used for specific cloud provider configuration such as IAM role for AWS. For a Kubernetes vanilla cluster, generic addons should be used.
Any contribution supporting a new cloud provider is welcomed.
Doc generation
Code formatting and documentation for variables and outputs is generated using pre-commit-terraform hooks which uses terraform-docs.
Follow these instructions to install pre-commit locally.
And install terraform-docs
with go get github.com/segmentio/terraform-docs
or brew install terraform-docs
.
Contributing
Report issues/questions/feature requests on in the issues section.
Full contributing guidelines are covered here.
<!-- BEGIN_TF_DOCS -->Requirements
Name | Version |
---|---|
<a name="requirement_terraform"></a> terraform | >= 1.3.2 |
<a name="requirement_flux"></a> flux | ~> 1.0 |
<a name="requirement_github"></a> github | ~> 6.0 |
<a name="requirement_helm"></a> helm | ~> 2.0 |
<a name="requirement_http"></a> http | >= 3 |
<a name="requirement_kubectl"></a> kubectl | ~> 2.0 |
<a name="requirement_kubernetes"></a> kubernetes | ~> 2.0, != 2.12 |
<a name="requirement_tls"></a> tls | ~> 4.0 |
Providers
Name | Version |
---|---|
<a name="provider_flux"></a> flux | ~> 1.0 |
<a name="provider_github"></a> github | ~> 6.0 |
<a name="provider_helm"></a> helm | ~> 2.0 |
<a name="provider_http"></a> http | >= 3 |
<a name="provider_kubectl"></a> kubectl | ~> 2.0 |
<a name="provider_kubernetes"></a> kubernetes | ~> 2.0, != 2.12 |
<a name="provider_random"></a> random | n/a |
<a name="provider_time"></a> time | n/a |
<a name="provider_tls"></a> tls | ~> 4.0 |
Modules
No modules.
Resources
Inputs
Name | Description | Type | Default | Required |
---|---|---|---|---|
<a name="input_admiralty"></a> admiralty | Customize admiralty chart, see admiralty.tf for supported values | any | {} | no |
<a name="input_cert-manager"></a> cert-manager | Customize cert-manager chart, see cert-manager.tf for supported values | any | {} | no |
<a name="input_cert-manager-csi-driver"></a> cert-manager-csi-driver | Customize cert-manager-csi-driver chart, see cert-manager.tf for supported values | any | {} | no |
<a name="input_cluster-autoscaler"></a> cluster-autoscaler | Customize cluster-autoscaler chart, see cluster-autoscaler.tf for supported values | any | {} | no |
<a name="input_cluster-name"></a> cluster-name | Name of the Kubernetes cluster | string | "sample-cluster" | no |
<a name="input_csi-external-snapshotter"></a> csi-external-snapshotter | Customize csi-external-snapshotter, see csi-external-snapshotter.tf for supported values | any | {} | no |
<a name="input_external-dns"></a> external-dns | Map of map for external-dns configuration: see external_dns.tf for supported values | any | {} | no |
<a name="input_flux2"></a> flux2 | Customize Flux chart, see flux2.tf for supported values | any | {} | no |
<a name="input_helm_defaults"></a> helm_defaults | Customize default Helm behavior | any | {} | no |
<a name="input_ingress-nginx"></a> ingress-nginx | Customize ingress-nginx chart, see nginx-ingress.tf for supported values | any | {} | no |
<a name="input_ip-masq-agent"></a> ip-masq-agent | Configure ip masq agent chart, see ip-masq-agent.tf for supported values. This addon works only on GCP. | any | {} | no |
<a name="input_k8gb"></a> k8gb | Customize k8gb chart, see k8gb.tf for supported values | any | {} | no |
<a name="input_karma"></a> karma | Customize karma chart, see karma.tf for supported values | any | {} | no |
<a name="input_keda"></a> keda | Customize keda chart, see keda.tf for supported values | any | {} | no |
<a name="input_kong"></a> kong | Customize kong-ingress chart, see kong.tf for supported values | any | {} | no |
<a name="input_kube-prometheus-stack"></a> kube-prometheus-stack | Customize kube-prometheus-stack chart, see kube-prometheus-stack.tf for supported values | any | {} | no |
<a name="input_labels_prefix"></a> labels_prefix | Custom label prefix used for network policy namespace matching | string | "particule.io" | no |
<a name="input_linkerd"></a> linkerd | Customize linkerd chart, see linkerd.tf for supported values | any | {} | no |
<a name="input_linkerd-viz"></a> linkerd-viz | Customize linkerd-viz chart, see linkerd-viz.tf for supported values | any | {} | no |
<a name="input_linkerd2"></a> linkerd2 | Customize linkerd2 chart, see linkerd2.tf for supported values | any | {} | no |
<a name="input_linkerd2-cni"></a> linkerd2-cni | Customize linkerd2-cni chart, see linkerd2-cni.tf for supported values | any | {} | no |
<a name="input_loki-stack"></a> loki-stack | Customize loki-stack chart, see loki-stack.tf for supported values | any | {} | no |
<a name="input_metrics-server"></a> metrics-server | Customize metrics-server chart, see metrics_server.tf for supported values | any | {} | no |
<a name="input_npd"></a> npd | Customize node-problem-detector chart, see npd.tf for supported values | any | {} | no |
<a name="input_priority-class"></a> priority-class | Customize a priority class for addons | any | {} | no |
<a name="input_priority-class-ds"></a> priority-class-ds | Customize a priority class for addons daemonsets | any | {} | no |
<a name="input_prometheus-adapter"></a> prometheus-adapter | Customize prometheus-adapter chart, see prometheus-adapter.tf for supported values | any | {} | no |
<a name="input_prometheus-blackbox-exporter"></a> prometheus-blackbox-exporter | Customize prometheus-blackbox-exporter chart, see prometheus-blackbox-exporter.tf for supported values | any | {} | no |
<a name="input_promtail"></a> promtail | Customize promtail chart, see loki-stack.tf for supported values | any | {} | no |
<a name="input_reloader"></a> reloader | Customize reloader chart, see reloader.tf for supported values | any | {} | no |
<a name="input_sealed-secrets"></a> sealed-secrets | Customize sealed-secrets chart, see sealed-secrets.tf for supported values | any | {} | no |
<a name="input_secrets-store-csi-driver"></a> secrets-store-csi-driver | Customize secrets-store-csi-driver chart, see secrets-store-csi-driver.tf for supported values | any | {} | no |
<a name="input_thanos"></a> thanos | Customize thanos chart, see thanos.tf for supported values | any | {} | no |
<a name="input_thanos-memcached"></a> thanos-memcached | Customize thanos chart, see thanos.tf for supported values | any | {} | no |
<a name="input_thanos-receive"></a> thanos-receive | Customize thanos chart, see thanos-receive.tf for supported values | any | {} | no |
<a name="input_thanos-storegateway"></a> thanos-storegateway | Customize thanos chart, see thanos.tf for supported values | any | {} | no |
<a name="input_thanos-tls-querier"></a> thanos-tls-querier | Customize thanos chart, see thanos.tf for supported values | any | {} | no |
<a name="input_tigera-operator"></a> tigera-operator | Customize tigera-operator chart, see tigera-operator.tf for supported values | any | {} | no |
<a name="input_traefik"></a> traefik | Customize traefik chart, see traefik.tf for supported values | any | {} | no |
<a name="input_velero"></a> velero | Customize velero chart, see velero.tf for supported values | any | {} | no |
<a name="input_victoria-metrics-k8s-stack"></a> victoria-metrics-k8s-stack | Customize Victoria Metrics chart, see victoria-metrics-k8s-stack.tf for supported values | any | {} | no |
Outputs
Name | Description |
---|---|
<a name="output_grafana_password"></a> grafana_password | n/a |
<a name="output_loki-stack-ca"></a> loki-stack-ca | n/a |
<a name="output_promtail-cert"></a> promtail-cert | n/a |
<a name="output_promtail-key"></a> promtail-key | n/a |