terraform_alert_config/import_adapter/main.tf (60 lines of code) (raw):
# Add required providers
provider "google" {
project = var.project_id
region = var.region
zone = var.zone
}
# Customize kubernetes provider
data "google_compute_zones" "available" {
project = var.project_id
}
resource "random_id" "cluster_name" {
byte_length = 10
}
resource "random_id" "username" {
byte_length = 14
}
resource "random_password" "password" {
length = 16
special = true
override_special = "_%@"
}
data "google_container_engine_versions" "supported" {
location = data.google_compute_zones.available.names[0]
}
resource "google_container_cluster" "primary" {
name = "tf-cluster-${random_id.cluster_name.hex}"
location = data.google_compute_zones.available.names[0]
network = "default"
initial_node_count = var.replicas
min_master_version = data.google_container_engine_versions.supported.latest_master_version
# node version must match master version
# https://www.terraform.io/docs/providers/google/r/container_cluster.html#node_version
node_version = data.google_container_engine_versions.supported.latest_master_version
node_locations = [
data.google_compute_zones.available.names[1]
]
master_auth {
username = random_id.username.hex
password = random_password.password.result
}
node_config {
machine_type = "n1-standard-4"
oauth_scopes = [
"https://www.googleapis.com/auth/compute",
"https://www.googleapis.com/auth/devstorage.read_only",
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring",
]
}
}
provider "kubernetes" {
load_config_file = "false"
host = google_container_cluster.primary.endpoint
username = google_container_cluster.primary.master_auth[0].username
password = google_container_cluster.primary.master_auth[0].password
client_certificate = base64decode(google_container_cluster.primary.master_auth[0].client_certificate)
client_key = base64decode(google_container_cluster.primary.master_auth[0].client_key)
cluster_ca_certificate = base64decode(google_container_cluster.primary.master_auth[0].cluster_ca_certificate)
}
resource "kubernetes_namespace" "healthcare-dicom-adapter" {
metadata {
name = "namespace-dicom-import-adapter"
}
}