All Projects → Kubedex → terraform-helmfile

Kubedex / terraform-helmfile

Licence: other
Run Helmfile from Terraform

Programming Languages

Makefile
30231 projects
HCL
1544 projects
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to terraform-helmfile

charts
Public helm charts
Stars: ✭ 15 (-53.12%)
Mutual labels:  helm-chart
octant-dashboard-turnkey
A turnkey Docker-ready and Kubernetes-ready Octant dashboard config
Stars: ✭ 40 (+25%)
Mutual labels:  helm-chart
helm-charts
Source & Repo of https://charts.kubesphere.io/main & https://charts.kubesphere.io/test
Stars: ✭ 85 (+165.63%)
Mutual labels:  helm-chart
WebGrid
Decentralized, scalable and robust implementation of a selenium-grid equivalent. Based on the WebDriver specification by the W3C.
Stars: ✭ 17 (-46.87%)
Mutual labels:  helm-chart
aks-terraform-helm
Showcase for Azure, AKS, Terraform, Helm and Let's Encrypt
Stars: ✭ 23 (-28.12%)
Mutual labels:  helm-chart
pulsar-helm-chart
Apache Pulsar Helm chart
Stars: ✭ 27 (-15.62%)
Mutual labels:  helm-chart
pulsar-helm-chart
Official Apache Pulsar Helm Chart
Stars: ✭ 122 (+281.25%)
Mutual labels:  helm-chart
anycable-helm
Helm charts for installing any cables into a Kubernetes cluster
Stars: ✭ 14 (-56.25%)
Mutual labels:  helm-chart
helm-charts
docs.renovatebot.com/helm-charts
Stars: ✭ 51 (+59.38%)
Mutual labels:  helm-chart
charts
A Kubernetes Helm Chart for Sorry Cypress, an open-source on-premise, self-hosted alternative to cypress dashboard.
Stars: ✭ 26 (-18.75%)
Mutual labels:  helm-chart
stackstorm-ha
K8s Helm Chart (βeta!) that codifies StackStorm (aka "IFTTT for Ops" https://stackstorm.com/) Highly Availability fleet as a simple to use reproducible infrastructure-as-code app
Stars: ✭ 74 (+131.25%)
Mutual labels:  helm-chart
kubeseal-webgui
This is a python based webapp for using Bitnami-Sealed-Secrets in a web-ui.
Stars: ✭ 27 (-15.62%)
Mutual labels:  helm-chart
eirini-release
Helm release for Project Eirini
Stars: ✭ 37 (+15.63%)
Mutual labels:  helm-chart
pulsar-helm-chart
Helm Chart for an Apache Pulsar Cluster
Stars: ✭ 31 (-3.12%)
Mutual labels:  helm-chart
persistent binderhub
A Helm chart repo to install persistent BinderHub
Stars: ✭ 18 (-43.75%)
Mutual labels:  helm-chart
helm-unittest
BDD styled unit test framework for Kubernetes Helm charts as a Helm plugin.
Stars: ✭ 276 (+762.5%)
Mutual labels:  helm-chart
k8s-ovpn-chart
[DEPRECATED] Helm chart for a private OpenVPN server
Stars: ✭ 19 (-40.62%)
Mutual labels:  helm-chart
helm-zabbix
Helm Chart For Zabbix
Stars: ✭ 56 (+75%)
Mutual labels:  helm-chart
oci-service-broker
Oracle Cloud Infrastructure Service Broker is an open source implementation of Open service broker API Spec for OCI services. Customers can use this implementation to install Open Service Broker in Oracle Container Engine for Kubernetes or in other Kubernetes clusters.
Stars: ✭ 48 (+50%)
Mutual labels:  helm-chart
Chartboard
Simple dashboard to show widget chart
Stars: ✭ 23 (-28.12%)
Mutual labels:  helm-chart

terraform-helmfile

An example that shows how to use Terraform for installing Helm Charts on a Kubernetes cluster using Helmfile.

asciicast

There are a couple of reasons why you would want to deploy using Terraform:

  • Provision complete Kubernetes clusters from scratch using Terraform
  • Passing variables to charts dynamically that Terraform manages

The example uses the docker_container Terraform resource to spin up a local ephemeral container that runs Helmfile.

We render a kubeconfig, entrypoint and helmfile.yaml into this container and execute helmfile apply.

The demo executes against a local K3s Kubernetes cluster. To use this on remote clusters you will need to render the appropriate kubeconfig.yaml into the container.

We use a local-exec to run docker logs against the helmfile docker container and detect when it finishes and what the exit code was. This informs Terraform of whether the deployment was successful or not.

No Terraform state is used to determine is a Helm Chart needs to be updated. This mechanism for doing chart deployments is effectively stateless and idempotent. Inside the container we're using the helm-tiller plugin so there is no server side tiller component either.

Demo

Start K3s so we can execute our demo Terraform code against it.

docker-compose up -d

Verify that K3s comes up and you have a running core-dns pod.

export KUBECONFIG=./kubeconfig.yaml
kubectl get pods --all-namespaces 

You should see a coredns pod running after a few seconds.

$ kubectl get pods --all-namespaces
NAMESPACE     NAME                      READY   STATUS    RESTARTS   AGE
kube-system   coredns-b7464766c-xlmjn   1/1     Running   0          16s

Initialise the Terraform plugins

terraform init

Run helmfile to install the example kubernetes dashboard chart.

Warning: The settings for this chart are dangerously insecure. This demo installs into a K3s on localhost which is the only place you should ever think about installing an unsecured dashboard.

terraform apply

Check that everything worked.

kubectl get pods --all-namespaces

You can also verify that the dashboard chart that was installed by opening it in a browser.

export POD_NAME=$(kubectl get pods -n dashboard -l "app=kubernetes-dashboard,release=kubernetes-dashboard" -o jsonpath="{.items[0].metadata.name}")
kubectl -n dashboard port-forward $POD_NAME 9090:9090

Then browse to https://localhost:9090 and click the skip button to login.

Troubleshooting

K3s creates a volume named k3s-server so data is persisted between container restarts. To wipe your local K3s you'll need to run.

docker-compose down
docker volume rm terraform-charts_k3s-server
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].