kops/tests/integration/update_cluster/minimal_scaleway/kubernetes.tf

286 lines
13 KiB
HCL

locals {
cluster_name = "scw-minimal.k8s.local"
region = "fr-par"
zone = "fr-par-1"
}
output "cluster_name" {
value = "scw-minimal.k8s.local"
}
output "region" {
value = "fr-par"
}
output "zone" {
value = "fr-par-1"
}
provider "scaleway" {
region = "fr-par"
zone = "fr-par-1"
}
provider "aws" {
alias = "files"
region = "us-test-1"
}
resource "aws_s3_object" "cluster-completed-spec" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_cluster-completed.spec_content")
key = "tests/scw-minimal.k8s.local/cluster-completed.spec"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "etcd-cluster-spec-events" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_etcd-cluster-spec-events_content")
key = "tests/scw-minimal.k8s.local/backups/etcd/events/control/etcd-cluster-spec"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "etcd-cluster-spec-main" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_etcd-cluster-spec-main_content")
key = "tests/scw-minimal.k8s.local/backups/etcd/main/control/etcd-cluster-spec"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "kops-version-txt" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_kops-version.txt_content")
key = "tests/scw-minimal.k8s.local/kops-version.txt"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "manifests-etcdmanager-events-control-plane-fr-par-1" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_manifests-etcdmanager-events-control-plane-fr-par-1_content")
key = "tests/scw-minimal.k8s.local/manifests/etcd/events-control-plane-fr-par-1.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "manifests-etcdmanager-main-control-plane-fr-par-1" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_manifests-etcdmanager-main-control-plane-fr-par-1_content")
key = "tests/scw-minimal.k8s.local/manifests/etcd/main-control-plane-fr-par-1.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "manifests-static-kube-apiserver-healthcheck" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_manifests-static-kube-apiserver-healthcheck_content")
key = "tests/scw-minimal.k8s.local/manifests/static/kube-apiserver-healthcheck.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "nodeupconfig-control-plane-fr-par-1" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_nodeupconfig-control-plane-fr-par-1_content")
key = "tests/scw-minimal.k8s.local/igconfig/control-plane/control-plane-fr-par-1/nodeupconfig.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "nodeupconfig-nodes-fr-par-1" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_nodeupconfig-nodes-fr-par-1_content")
key = "tests/scw-minimal.k8s.local/igconfig/node/nodes-fr-par-1/nodeupconfig.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "scw-minimal-k8s-local-addons-bootstrap" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_scw-minimal.k8s.local-addons-bootstrap_content")
key = "tests/scw-minimal.k8s.local/addons/bootstrap-channel.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "scw-minimal-k8s-local-addons-coredns-addons-k8s-io-k8s-1-12" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_scw-minimal.k8s.local-addons-coredns.addons.k8s.io-k8s-1.12_content")
key = "tests/scw-minimal.k8s.local/addons/coredns.addons.k8s.io/k8s-1.12.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "scw-minimal-k8s-local-addons-dns-controller-addons-k8s-io-k8s-1-12" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_scw-minimal.k8s.local-addons-dns-controller.addons.k8s.io-k8s-1.12_content")
key = "tests/scw-minimal.k8s.local/addons/dns-controller.addons.k8s.io/k8s-1.12.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "scw-minimal-k8s-local-addons-kops-controller-addons-k8s-io-k8s-1-16" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_scw-minimal.k8s.local-addons-kops-controller.addons.k8s.io-k8s-1.16_content")
key = "tests/scw-minimal.k8s.local/addons/kops-controller.addons.k8s.io/k8s-1.16.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "scw-minimal-k8s-local-addons-kubelet-api-rbac-addons-k8s-io-k8s-1-9" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_scw-minimal.k8s.local-addons-kubelet-api.rbac.addons.k8s.io-k8s-1.9_content")
key = "tests/scw-minimal.k8s.local/addons/kubelet-api.rbac.addons.k8s.io/k8s-1.9.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "scw-minimal-k8s-local-addons-limit-range-addons-k8s-io" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_scw-minimal.k8s.local-addons-limit-range.addons.k8s.io_content")
key = "tests/scw-minimal.k8s.local/addons/limit-range.addons.k8s.io/v1.5.0.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "scw-minimal-k8s-local-addons-networking-cilium-io-k8s-1-16" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_scw-minimal.k8s.local-addons-networking.cilium.io-k8s-1.16_content")
key = "tests/scw-minimal.k8s.local/addons/networking.cilium.io/k8s-1.16-v1.15.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "scw-minimal-k8s-local-addons-scaleway-cloud-controller-addons-k8s-io-k8s-1-24" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_scw-minimal.k8s.local-addons-scaleway-cloud-controller.addons.k8s.io-k8s-1.24_content")
key = "tests/scw-minimal.k8s.local/addons/scaleway-cloud-controller.addons.k8s.io/k8s-1.24.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "aws_s3_object" "scw-minimal-k8s-local-addons-scaleway-csi-driver-addons-k8s-io-k8s-1-24" {
bucket = "testingBucket"
content = file("${path.module}/data/aws_s3_object_scw-minimal.k8s.local-addons-scaleway-csi-driver.addons.k8s.io-k8s-1.24_content")
key = "tests/scw-minimal.k8s.local/addons/scaleway-csi-driver.addons.k8s.io/k8s-1.24.yaml"
provider = aws.files
server_side_encryption = "AES256"
}
resource "scaleway_iam_ssh_key" "kubernetes-scw-minimal-k8s-local-be_9e_c3_eb_cb_0c_c0_50_ea_bd_b4_5a_15_e3_40_2a" {
name = "kubernetes.scw-minimal.k8s.local-be:9e:c3:eb:cb:0c:c0:50:ea:bd:b4:5a:15:e3:40:2a"
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDKqbVEozfAqng0gx8HTUu69EppcE5SWet6MpwrGShqMVUC4wkoiuVtJDPhMmWmdt7B7Ttc5pvnAZAZaQ6TKMguyBoAyS7qOTLU9/hM803XtSiwQUftOXiJfmsqAXEc8yDyb7UnrF8X7aA3gQJsnQBGJGdp+C88dPHNZenw4PnQc8BNYTCXG9d8F5vJ3xQ5qbiG4HVNoQ2CZh2ht+GedZJ3hl9lMJ24kE/cbMCLKxabMP4ROetECG6PU251jnm84NA8rm0Av/JMmn/c9CFAe0D0D1dGDlHWPsk4mbhGKJ0yU0YliatmPfmgSasismbYzIFf7VPq91ARzRUbavd1fYMBmkMsce0YR/5FdtrpzRhqDzuvwQgQRsoTcttdvp0puFcrtNefMfk8NCbBedIlkzOFxfGiBbe6jde4wqsqEnSrNHwZ2b+Er8z7vjcDPBqYk3gubmMBCrYxg6o1lOS6tTN0kJDUlyKO2AN1ZDr3mpkbhkvZV/N7gLglcClM0X5X7iM= leila@leila-ThinkPad-T14s-Gen-2i"
}
resource "scaleway_instance_ip" "control-plane-fr-par-1-0" {
tags = ["noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local"]
}
resource "scaleway_instance_ip" "nodes-fr-par-1-0" {
tags = ["noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local"]
}
resource "scaleway_instance_server" "control-plane-fr-par-1-0" {
enable_dynamic_ip = true
image = "ubuntu_focal"
ip_id = scaleway_instance_ip.control-plane-fr-par-1-0.id
lifecycle {
ignore_changes = [additional_volume_ids]
}
name = "control-plane-fr-par-1-0"
replace_on_type_change = false
tags = ["noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/instance-group=control-plane-fr-par-1", "noprefix=kops.k8s.io/role=ControlPlane"]
type = "DEV1-M"
user_data = {
"cloud-init" = file("${path.module}/data/scaleway_instance_server_control-plane-fr-par-1-0_user_data")
}
}
resource "scaleway_instance_server" "nodes-fr-par-1-0" {
enable_dynamic_ip = true
image = "ubuntu_focal"
ip_id = scaleway_instance_ip.nodes-fr-par-1-0.id
name = "nodes-fr-par-1-0"
replace_on_type_change = false
tags = ["noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/instance-group=nodes-fr-par-1"]
type = "DEV1-M"
user_data = {
"cloud-init" = file("${path.module}/data/scaleway_instance_server_nodes-fr-par-1-0_user_data")
}
}
resource "scaleway_instance_volume" "etcd-1-etcd-events-scw-minimal-k8s-local" {
name = "etcd-1.etcd-events.scw-minimal.k8s.local"
size_in_gb = 20
tags = ["noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/etcd=events", "noprefix=kops.k8s.io/role=ControlPlane", "noprefix=kops.k8s.io/instance-group=control-plane-fr-par-1"]
type = "b_ssd"
}
resource "scaleway_instance_volume" "etcd-1-etcd-main-scw-minimal-k8s-local" {
name = "etcd-1.etcd-main.scw-minimal.k8s.local"
size_in_gb = 20
tags = ["noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/etcd=main", "noprefix=kops.k8s.io/role=ControlPlane", "noprefix=kops.k8s.io/instance-group=control-plane-fr-par-1"]
type = "b_ssd"
}
resource "scaleway_lb" "api-scw-minimal-k8s-local" {
description = "Load-balancer for kops cluster scw-minimal.k8s.local"
ip_id = scaleway_lb_ip.api-scw-minimal-k8s-local.id
name = "api.scw-minimal.k8s.local"
tags = ["noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/role=ControlPlane"]
type = "LB-S"
}
resource "scaleway_lb_backend" "lb-backend-https" {
forward_port = 443
forward_protocol = "tcp"
lb_id = scaleway_lb.api-scw-minimal-k8s-local.id
name = "lb-backend-https"
proxy_protocol = "none"
server_ips = [scaleway_instance_server.control-plane-fr-par-1-0.private_ip]
}
resource "scaleway_lb_backend" "lb-backend-kops-controller" {
forward_port = 3988
forward_protocol = "tcp"
lb_id = scaleway_lb.api-scw-minimal-k8s-local.id
name = "lb-backend-kops-controller"
proxy_protocol = "none"
server_ips = [scaleway_instance_server.control-plane-fr-par-1-0.private_ip]
}
resource "scaleway_lb_frontend" "lb-frontend-https" {
backend_id = scaleway_lb_backend.lb-backend-https.id
inbound_port = 443
lb_id = scaleway_lb.api-scw-minimal-k8s-local.id
name = "lb-frontend-https"
}
resource "scaleway_lb_frontend" "lb-frontend-kops-controller" {
backend_id = scaleway_lb_backend.lb-backend-kops-controller.id
inbound_port = 3988
lb_id = scaleway_lb.api-scw-minimal-k8s-local.id
name = "lb-frontend-kops-controller"
}
resource "scaleway_lb_ip" "api-scw-minimal-k8s-local" {
}
terraform {
required_version = ">= 0.15.0"
required_providers {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 5.0.0"
}
scaleway = {
"source" = "scaleway/scaleway"
"version" = ">= 2.2.1"
}
}
}