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.
No responses yet