mirror of
https://github.com/MichaelCade/90DaysOfDevOps.git
synced 2025-01-08 14:23:01 +07:00
63 lines
1.1 KiB
HCL
63 lines
1.1 KiB
HCL
terraform {
|
|
required_providers {
|
|
kubernetes = {
|
|
source = "hashicorp/kubernetes"
|
|
version = ">= 2.0.0"
|
|
}
|
|
}
|
|
}
|
|
provider "kubernetes" {
|
|
config_path = "~/.kube/config"
|
|
}
|
|
resource "kubernetes_namespace" "test" {
|
|
metadata {
|
|
name = "nginx"
|
|
}
|
|
}
|
|
resource "kubernetes_deployment" "test" {
|
|
metadata {
|
|
name = "nginx"
|
|
namespace = kubernetes_namespace.test.metadata.0.name
|
|
}
|
|
spec {
|
|
replicas = 2
|
|
selector {
|
|
match_labels = {
|
|
app = "MyTestApp"
|
|
}
|
|
}
|
|
template {
|
|
metadata {
|
|
labels = {
|
|
app = "MyTestApp"
|
|
}
|
|
}
|
|
spec {
|
|
container {
|
|
image = "nginx"
|
|
name = "nginx-container"
|
|
port {
|
|
container_port = 80
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
resource "kubernetes_service" "test" {
|
|
metadata {
|
|
name = "nginx"
|
|
namespace = kubernetes_namespace.test.metadata.0.name
|
|
}
|
|
spec {
|
|
selector = {
|
|
app = kubernetes_deployment.test.spec.0.template.0.metadata.0.labels.app
|
|
}
|
|
type = "NodePort"
|
|
port {
|
|
node_port = 30201
|
|
port = 80
|
|
target_port = 80
|
|
}
|
|
}
|
|
} |