first test terraform to create cluster k8s

This commit is contained in:
Valentin CZERYBA 2022-10-08 19:52:45 +02:00
parent a9c26d97bb
commit b9c54eff60
3 changed files with 8 additions and 99 deletions

43
main.tf
View File

@ -1,43 +0,0 @@
terraform {
required_providers {
scaleway = {
source = "scaleway/scaleway"
}
}
required_version = ">= 0.13"
}
resource "scaleway_k8s_cluster" "terraform-test" {
name = "terraform-test"
version = "1.24.3"
cni = "cilium"
project_id = "81af2696-6120-4f45-baf3-d17fb0525824"
region = "fr-par"
}
resource "scaleway_k8s_pool" "john" {
cluster_id = scaleway_k8s_cluster.terraform-test.id
name = "john"
node_type = "DEV1-M"
size = 1
}
resource "null_resource" "kubeconfig" {
depends_on = [scaleway_k8s_pool.john] # at least one pool here
triggers = {
host = scaleway_k8s_cluster.terraform-test.kubeconfig[0].host
token = scaleway_k8s_cluster.terraform-test.kubeconfig[0].token
cluster_ca_certificate = scaleway_k8s_cluster.terraform-test.kubeconfig[0].cluster_ca_certificate
}
}
provider "kubernetes" {
load_config_file = "false"
host = null_resource.kubeconfig.triggers.host
token = null_resource.kubeconfig.triggers.token
cluster_ca_certificate = base64decode(
null_resource.kubeconfig.triggers.cluster_ca_certificate
)
}

View File

@ -1,24 +1,15 @@
--- ---
# tasks file for scaleway-k8s # tasks file for scaleway-k8s
- name: Create directory terraform - name: Create directory {{ project_terraform }}
file: file:
path: /home/valentin/terraform path: "{{ project_terraform }}"
state: directory state: directory
- name: Copy main.tf - name: Copy main.tf
template: template:
src: main.tf.j2 src: main.tf.j2
dest: /home/valentin/terraform/main.tf dest: "{{ project_terraform }}/main.tf"
- name: Plan terraform
community.general.terraform:
project_path: '{{ project_terraform }}'
state: planned
register: output
environment:
SCW_ACCESS_KEY: "{{ scw_access_key }}"
SCW_SECRET_KEY: "{{ scw_secret_key }}"
- name: display plan terraform - name: display plan terraform
@ -29,8 +20,13 @@
community.general.terraform: community.general.terraform:
project_path: '{{ project_terraform }}' project_path: '{{ project_terraform }}'
state: present state: present
force_init: yes
environment: environment:
SCW_ACCESS_KEY: "{{ scw_access_key }}" SCW_ACCESS_KEY: "{{ scw_access_key }}"
SCW_SECRET_KEY: "{{ scw_secret_key }}" SCW_SECRET_KEY: "{{ scw_secret_key }}"
register: output
- name: display terraform result
debug:
var: output

View File

@ -1,44 +0,0 @@
terraform {
required_providers {
scaleway = {
source = "scaleway/scaleway"
}
}
required_version = ">= 0.13"
}
resource "scaleway_k8s_cluster" "{{ project_name }}" {
name = "{{ project_name }}"
version = "1.24.3"
cni = "cilium"
project_id = "{{ project_id }}"
region = "{{ region_k8s }}"
}
resource "scaleway_k8s_pool" "john" {
cluster_id = scaleway_k8s_cluster.{{ project_name }}.id
name = "john"
node_type = "DEV1-M"
size = 1
}
resource "null_resource" "kubeconfig" {
depends_on = [scaleway_k8s_pool.john] # at least one pool here
triggers = {
host = scaleway_k8s_cluster.{{ project_name }}.kubeconfig[0].host
token = scaleway_k8s_cluster.{{ project_name }}.kubeconfig[0].token
cluster_ca_certificate = scaleway_k8s_cluster.{{ project_name }}.kubeconfig[0].cluster_ca_certificate
}
}
provider "kubernetes" {
load_config_file = "false"
host = null_resource.kubeconfig.triggers.host
token = null_resource.kubeconfig.triggers.token
cluster_ca_certificate = base64decode(
null_resource.kubeconfig.triggers.cluster_ca_certificate
)
}