# Minikube en 3 pasos: Un Terraform Provider para Simplificar la Creación de Clústeres Kubernetes

En este blog, te explico como crear un cluster de **Minikube en 3 pasos con Terraform**

![Understand Terraform (infra-as-code) in 5 minutes - Je suis un dev](https://i.imgur.com/dqyWQJO.jpg align="center")

Me siento como **Dr stranger** usando [Scott-the-programmer/minikube](https://github.com/scott-the-programmer/terraform-provider-minikube), Un Terraform Provider para Simplificar la Creación de Clústeres Kubernetes \[Minikube\].

**Imagina poder desplegar y gestionar clústeres Minikube** de manera eficiente, integrando herramientas tan fundamentales como **hashicorp/kubernetes** y **hashicorp/helm** con la facilidad que proporciona **Terraform**.

Este provider tiene como objetivo brindar a los desarrolladores la capacidad de crear entornos Kubernetes de manera sencilla y eficaz, todo dentro del entorno familiar de Minikube.

**Tan fácil como decirle**

```bash
provider minikube {
  kubernetes_version = "v1.28.3"
}

resource "minikube_cluster" "cluster" {
  vm      = true
  driver  = "docker"
  cni     = "cilium"
  addons  = [
    "dashboard",
    "default-storageclass",
    "ingress",
    "storage-provisioner"
  ]
}
```

**y gestionarlo a la par del provider de kubernetes**

```bash
provider "kubernetes" {
  host = minikube_cluster.cluster.host

  client_certificate     = minikube_cluster.cluster.client_certificate
  client_key             = minikube_cluster.cluster.client_key
  cluster_ca_certificate = minikube_cluster.cluster.cluster_ca_certificate
}
```

Puedes usar este Repositorio que simplifiqué su uso.

**Repositorio**: \[Enlace\]([https://github.com/roxsross/TerraKubeRoxs.git](https://github.com/roxsross/TerraKubeRoxs.git))

## ¿Como funciona?

Como les dije en 3 pasos, **terraform init, plan y apply**

Lo interesante es que puedes usar el drive Docker por lo que te levanta contenedores tantos nodes quieras.

Te clonas el repositorio **TerrakubeRoxs**

`cd terraform terraform init`

<mark>puedes customizar en variables.tf dale el nombre que quieras, la magia y el poder nos permite crear cosas geniales</mark>

![](https://github.com/roxsross/TerraKubeRoxs/raw/master/assets/1.png align="left")

Ejecutas el plan `terraform plan`

![](https://github.com/roxsross/TerraKubeRoxs/raw/master/assets/2.png align="left")

Ahora Aplicas `terraform apply`

![](https://github.com/roxsross/TerraKubeRoxs/raw/master/assets/4.png align="left")

Puedes administrar desde tu gestor preferido k9s, lens, etc

![](https://github.com/roxsross/TerraKubeRoxs/raw/master/assets/5.png align="left")

![](https://github.com/roxsross/TerraKubeRoxs/raw/master/assets/6.png align="left")

Tiene la posibilidad de agregarle más nodos

![](https://github.com/roxsross/TerraKubeRoxs/raw/master/assets/7.png align="left")

... y todo contenedores

![](https://github.com/roxsross/TerraKubeRoxs/raw/master/assets/3.png align="left")

Y si queres destruir `terraform destroy`

En resumen, este Terraform Provider para Minikube representa un paso adelante en la simplificación y mejora de la gestión de clústeres Kubernetes, contribuyendo significativamente a la eficiencia y productividad de los desarrolladores.

<mark>¡Explora nuevas posibilidades y lleva tu orquestación de clústeres al siguiente nivel con esta emocionante herramienta!</mark>

---

### Nos vemos en la próxima entrada aplicando ahora GITOPS

---

Gracias por sumergirte en este **viaje de conocimiento**.

**Si este blog encendió una chispa de inspiración**, ¡ilumina tu día con un aplauso 👏 y sígueme en **LinkedIn y GitHub** para más destellos de aprendizaje y colaboración emocionante!

Conéctate en LinkedIn:[https://www.linkedin.com/in/roxsross/](https://www.linkedin.com/in/roxsross/)

Descubre más en GitHub: [https://github.com/roxsross](https://github.com/roxsross)

Mi Web: https://roxs.295devops.com

**¡Hasta la próxima ola del conocimiento!**
