We will create the nginx App on k8s with using Terraform.

Step1:
Create the kubernetes file like below.

vim kubernetes.tf
terraform {
required_providers {
kubernetes = {
source = "hashicorp/kubernetes"
}
}
}

variable "host" {
type = string
}

variable "client_certificate" {
type = string
}

variable "client_key" {
type = string
}

variable "cluster_ca_certificate" {
type = string
}

provider "kubernetes" {
host = var.host

client_certificate = base64decode(var.client_certificate)
client_key = base64decode(var.client_key)
cluster_ca_certificate = base64decode(var.cluster_ca_certificate)
}

resource "kubernetes_deployment" "nginx" {
metadata {
name = "nginx-terraform-ex"
labels = {
App = "nginx-terraform-ex"
}
}

spec {
replicas = 2
selector {
match_labels = {
App = "nginx-terraform-ex"
}
}
template {
metadata {
labels = {
App = "nginx-terraform-ex"
}
}
spec {
container {
image = "nginx:1.7.8"
name = "example"

port {
container_port = 80
}

resources {
limits = {
cpu = "0.5"
memory = "512Mi"
}
requests = {
cpu = "250m"
memory = "50Mi"
}
}
}
}
}
}
}
resource "kubernetes_service" "nginx" {
metadata {
name = "nginx-example-1"
}
spec {
selector = {
App = "nginx-terraform-ex"
}
port {
node_port = 30202
port = 80
target_port = 80
}

type = "NodePort"
}
}

Create variables file.

vim terraform.tfvars
host                   = "https://k8sapiaddress:6443"
client_certificate = "LS0tLS1..."
client_key = "LS0tLS1..."
cluster_ca_certificate = "LS0tLS1..."

Step2:

Install the applicaiton with terraform.

terraform init
terraform apply

Step3:
Check installation.

kubectl get deploy -n default

Teşekkürler.


Tags:

No responses yet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Latest Comments