mirror of
https://github.com/2martens/terraform.git
synced 2026-10-17 20:06:52 +02:00
Use content snap
This commit is contained in:
@@ -183,7 +183,7 @@ resource "hcloud_server" "server_k8s_test" {
|
|||||||
admin_user : "2martensAdmin"
|
admin_user : "2martensAdmin"
|
||||||
terraform_public_ssh_key : var.terraform_public_ssh_key
|
terraform_public_ssh_key : var.terraform_public_ssh_key
|
||||||
main_node : true
|
main_node : true
|
||||||
microk8s_config : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/microk8s-config-manager.tftpl", {
|
microk8s_config : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/snap/microk8s-config-manager.tftpl", {
|
||||||
node_ip : "10.0.0.2"
|
node_ip : "10.0.0.2"
|
||||||
api_server_domain : ""
|
api_server_domain : ""
|
||||||
api_server_ip : hcloud_primary_ip.primary_ipv4_k8s_test.ip_address
|
api_server_ip : hcloud_primary_ip.primary_ipv4_k8s_test.ip_address
|
||||||
@@ -191,26 +191,27 @@ resource "hcloud_server" "server_k8s_test" {
|
|||||||
main_node_ip : "10.0.0.2"
|
main_node_ip : "10.0.0.2"
|
||||||
cluster_token : ""
|
cluster_token : ""
|
||||||
}))
|
}))
|
||||||
packages_setup : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/install-packages.sh", {
|
snapcraft : base64encode(file("${path.module}/modules/k8s-cluster/templates/snap/snapcraft.yaml"))
|
||||||
|
packages_setup : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/scripts/install-packages.sh", {
|
||||||
refresh_day : "fri"
|
refresh_day : "fri"
|
||||||
refresh_hour : format("%02d", 0)
|
refresh_hour : format("%02d", 0)
|
||||||
}))
|
}))
|
||||||
firewall_setup : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/firewall-setup.sh", {
|
firewall_setup : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/scripts/firewall-setup.sh", {
|
||||||
node_ip : "10.0.0.2"
|
node_ip : "10.0.0.2"
|
||||||
}))
|
}))
|
||||||
ssh_setup : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/ssh-setup.sh", {
|
ssh_setup : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/scripts/ssh-setup.sh", {
|
||||||
admin_user : "2martensAdmin"
|
admin_user : "2martensAdmin"
|
||||||
}))
|
}))
|
||||||
microk8s_setup : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/microk8s-setup.sh", {
|
microk8s_setup : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/scripts/microk8s-setup.sh", {
|
||||||
microk8s_channel : "1.28-strict/stable"
|
microk8s_channel : "1.28-strict/stable"
|
||||||
main_node : true
|
main_node : true
|
||||||
}))
|
}))
|
||||||
cluster_setup_values : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/cluster-setup-values.yaml", {
|
cluster_setup_values : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/helm/cluster-setup-values.yaml", {
|
||||||
client_id : var.vault_client_id
|
client_id : var.vault_client_id
|
||||||
client_secret : var.vault_client_secret
|
client_secret : var.vault_client_secret
|
||||||
}))
|
}))
|
||||||
argocd_ha_values : base64encode(file("${path.module}/modules/k8s-cluster/templates/argocd-values-ha.yaml"))
|
argocd_ha_values : base64encode(file("${path.module}/modules/k8s-cluster/templates/helm/argocd-values-ha.yaml"))
|
||||||
cluster_setup : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/cluster-setup.sh", {
|
cluster_setup : base64encode(templatefile("${path.module}/modules/k8s-cluster/templates/scripts/cluster-setup.sh", {
|
||||||
argocd_environment : "test"
|
argocd_environment : "test"
|
||||||
high_availability : false
|
high_availability : false
|
||||||
}))
|
}))
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ resource "hcloud_server" "manager" {
|
|||||||
admin_user : var.admin_user
|
admin_user : var.admin_user
|
||||||
terraform_public_ssh_key : var.terraform_public_ssh_key
|
terraform_public_ssh_key : var.terraform_public_ssh_key
|
||||||
main_node : count.index == 0
|
main_node : count.index == 0
|
||||||
microk8s_config : base64encode(templatefile("${path.module}/templates/microk8s-config-manager.tftpl", {
|
microk8s_config : base64encode(templatefile("${path.module}/templates/snap/microk8s-config-manager.tftpl", {
|
||||||
node_ip : var.private_node_ips[count.index]
|
node_ip : var.private_node_ips[count.index]
|
||||||
api_server_domain : local.kube_api_server_domain
|
api_server_domain : local.kube_api_server_domain
|
||||||
main_node : count.index == 0
|
main_node : count.index == 0
|
||||||
@@ -93,26 +93,27 @@ resource "hcloud_server" "manager" {
|
|||||||
api_server_ip : var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv4 : hcloud_primary_ip.ipv4_manager_address[0].ip_address
|
api_server_ip : var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv4 : hcloud_primary_ip.ipv4_manager_address[0].ip_address
|
||||||
cluster_token : random_id.cluster_token.hex
|
cluster_token : random_id.cluster_token.hex
|
||||||
}))
|
}))
|
||||||
packages_setup : base64encode(templatefile("${path.module}/templates/install-packages.sh", {
|
snapcraft : base64encode(file("${path.module}/templates/snap/snapcraft.yaml"))
|
||||||
|
packages_setup : base64encode(templatefile("${path.module}/templates/scripts/install-packages.sh", {
|
||||||
refresh_day : "fri"
|
refresh_day : "fri"
|
||||||
refresh_hour : format("%02d", count.index)
|
refresh_hour : format("%02d", count.index)
|
||||||
}))
|
}))
|
||||||
firewall_setup : base64encode(templatefile("${path.module}/templates/firewall-setup.sh", {
|
firewall_setup : base64encode(templatefile("${path.module}/templates/scripts/firewall-setup.sh", {
|
||||||
node_ip : var.private_node_ips[count.index]
|
node_ip : var.private_node_ips[count.index]
|
||||||
}))
|
}))
|
||||||
ssh_setup : base64encode(templatefile("${path.module}/templates/ssh-setup.sh", {
|
ssh_setup : base64encode(templatefile("${path.module}/templates/scripts/ssh-setup.sh", {
|
||||||
admin_user : var.admin_user
|
admin_user : var.admin_user
|
||||||
}))
|
}))
|
||||||
microk8s_setup : base64encode(templatefile("${path.module}/templates/microk8s-setup.sh", {
|
microk8s_setup : base64encode(templatefile("${path.module}/templates/scripts/microk8s-setup.sh", {
|
||||||
microk8s_channel : var.microk8s_channel
|
microk8s_channel : var.microk8s_channel
|
||||||
main_node = count.index == 0
|
main_node = count.index == 0
|
||||||
}))
|
}))
|
||||||
cluster_setup_values : base64encode(templatefile("${path.module}/templates/cluster-setup-values.yaml", {
|
cluster_setup_values : base64encode(templatefile("${path.module}/templates/helm/cluster-setup-values.yaml", {
|
||||||
client_id : var.vault_service_principal.client_id
|
client_id : var.vault_service_principal.client_id
|
||||||
client_secret : var.vault_service_principal.client_secret
|
client_secret : var.vault_service_principal.client_secret
|
||||||
}))
|
}))
|
||||||
argocd_ha_values : base64encode(file("${path.module}/templates/argocd-values-ha.yaml"))
|
argocd_ha_values : base64encode(file("${path.module}/templates/helm/argocd-values-ha.yaml"))
|
||||||
cluster_setup : base64encode(templatefile("${path.module}/templates/cluster-setup.sh", {
|
cluster_setup : base64encode(templatefile("${path.module}/templates/scripts/cluster-setup.sh", {
|
||||||
argocd_environment : var.argocd_environment
|
argocd_environment : var.argocd_environment
|
||||||
high_availability : var.number_nodes > 2
|
high_availability : var.number_nodes > 2
|
||||||
}))
|
}))
|
||||||
|
|||||||
@@ -20,6 +20,11 @@ write_files:
|
|||||||
path: /run/tmpfiles.d/microk8s.yaml
|
path: /run/tmpfiles.d/microk8s.yaml
|
||||||
encoding: base64
|
encoding: base64
|
||||||
defer: true
|
defer: true
|
||||||
|
- owner: root:root
|
||||||
|
content: "${snapcraft}"
|
||||||
|
path: /run/tmpfiles.d/snapcraft.yaml
|
||||||
|
encoding: base64
|
||||||
|
defer: true
|
||||||
- owner: root:root
|
- owner: root:root
|
||||||
content: "${packages_setup}"
|
content: "${packages_setup}"
|
||||||
path: /run/tmpfiles.d/install-packages.sh
|
path: /run/tmpfiles.d/install-packages.sh
|
||||||
|
|||||||
@@ -20,6 +20,11 @@ write_files:
|
|||||||
path: /run/tmpfiles.d/microk8s.yaml
|
path: /run/tmpfiles.d/microk8s.yaml
|
||||||
encoding: base64
|
encoding: base64
|
||||||
defer: true
|
defer: true
|
||||||
|
- owner: root:root
|
||||||
|
content: "${snapcraft}"
|
||||||
|
path: /run/tmpfiles.d/snapcraft.yaml
|
||||||
|
encoding: base64
|
||||||
|
defer: true
|
||||||
- owner: root:root
|
- owner: root:root
|
||||||
content: "${packages_setup}"
|
content: "${packages_setup}"
|
||||||
path: /run/tmpfiles.d/install-packages.sh
|
path: /run/tmpfiles.d/install-packages.sh
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
microk8s helm repo add 2martens https://repo.2martens.de/charts/
|
|
||||||
microk8s helm install setup 2martens/cluster_setup --values /run/tmpfiles.d/cluster-setup-values.yaml
|
|
||||||
%{ if high_availability ~}
|
|
||||||
microk8s helm install argocd 2martens/argocd --set environment=${argocd_environment} --values /run/tmpfiles.d/argocd-values-ha.yaml
|
|
||||||
%{ else ~}
|
|
||||||
microk8s helm install argocd 2martens/argocd --set environment=${argocd_environment}
|
|
||||||
%{ endif ~}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
cp /run/tmpfiles.d/microk8s.yaml /etc/microk8s.yaml
|
|
||||||
%{ if !main_node ~}
|
|
||||||
sleep 120
|
|
||||||
%{ endif ~}
|
|
||||||
snap install microk8s --channel "${microk8s_channel}"
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
/snap/bin/microk8s helm repo add 2martens https://repo.2martens.de/charts/
|
||||||
|
/snap/bin/microk8s helm install setup 2martens/cluster_setup --values /run/tmpfiles.d/cluster-setup-values.yaml
|
||||||
|
%{ if high_availability ~}
|
||||||
|
/snap/bin/microk8s helm install argocd 2martens/argocd --set environment=${argocd_environment} --values /run/tmpfiles.d/argocd-values-ha.yaml
|
||||||
|
%{ else ~}
|
||||||
|
/snap/bin/microk8s helm install argocd 2martens/argocd --set environment=${argocd_environment}
|
||||||
|
%{ endif ~}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
mkdir -p /run/snap/launcher/configuration
|
||||||
|
cp /run/tmpfiles.d/microk8s.yaml /run/snap/launcher/configuration/content.yaml
|
||||||
|
cp /run/tmpfiles.d/snapcraft.yaml /run/snap/snapcraft.yaml
|
||||||
|
cd /run/snap && snapcraft
|
||||||
|
snap install /run/snap/microk8s-cluster-config_*.snap --dangerous
|
||||||
|
|
||||||
|
%{ if !main_node ~}
|
||||||
|
sleep 120
|
||||||
|
%{ endif ~}
|
||||||
|
snap install microk8s --channel "${microk8s_channel}"
|
||||||
|
snap connect microk8s-cluster-config:configuration microk8s
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
name: microk8s-cluster-config
|
||||||
|
version: 'latest'
|
||||||
|
summary: Adds a launch configuration to MicroK8s
|
||||||
|
description: Configuration yaml file that MicroK8s can apply.
|
||||||
|
base: core20
|
||||||
|
|
||||||
|
grade: stable
|
||||||
|
confinement: strict
|
||||||
|
|
||||||
|
slots:
|
||||||
|
configuration:
|
||||||
|
interface: content
|
||||||
|
content: configuration
|
||||||
|
source:
|
||||||
|
read:
|
||||||
|
- $SNAP/launcher
|
||||||
|
|
||||||
|
parts:
|
||||||
|
configuration:
|
||||||
|
plugin: dump
|
||||||
|
source: .
|
||||||
|
stage:
|
||||||
|
- launcher/*
|
||||||
@@ -64,7 +64,7 @@ resource "hcloud_server" "worker" {
|
|||||||
admin_user : var.admin_user
|
admin_user : var.admin_user
|
||||||
terraform_public_ssh_key : var.terraform_public_ssh_key
|
terraform_public_ssh_key : var.terraform_public_ssh_key
|
||||||
main_node : count.index == 0
|
main_node : count.index == 0
|
||||||
microk8s_config : base64encode(templatefile("${path.module}/templates/microk8s-config-worker.tftpl", {
|
microk8s_config : base64encode(templatefile("${path.module}/templates/snap/microk8s-config-worker.tftpl", {
|
||||||
node_ip : var.private_node_ips[count.index]
|
node_ip : var.private_node_ips[count.index]
|
||||||
api_server_domain : local.kube_api_server_domain
|
api_server_domain : local.kube_api_server_domain
|
||||||
main_node : count.index == 0
|
main_node : count.index == 0
|
||||||
@@ -72,26 +72,27 @@ resource "hcloud_server" "worker" {
|
|||||||
api_server_ip : var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv4 : hcloud_server.manager[0].ipv4_address
|
api_server_ip : var.create_loadbalancer ? hcloud_load_balancer.kubernetes[0].ipv4 : hcloud_server.manager[0].ipv4_address
|
||||||
cluster_token : random_id.cluster_token.hex
|
cluster_token : random_id.cluster_token.hex
|
||||||
}))
|
}))
|
||||||
packages_setup : base64encode(templatefile("${path.module}/templates/install-packages.sh", {
|
snapcraft : base64encode(file("${path.module}/templates/snap/snapcraft.yaml"))
|
||||||
|
packages_setup : base64encode(templatefile("${path.module}/templates/scripts/install-packages.sh", {
|
||||||
refresh_day : "sat"
|
refresh_day : "sat"
|
||||||
refresh_hour : format("%02d", count.index)
|
refresh_hour : format("%02d", count.index)
|
||||||
}))
|
}))
|
||||||
firewall_setup : base64encode(templatefile("${path.module}/templates/firewall-setup.sh", {
|
firewall_setup : base64encode(templatefile("${path.module}/templates/scripts/firewall-setup.sh", {
|
||||||
node_ip : var.private_node_ips[count.index]
|
node_ip : var.private_node_ips[count.index]
|
||||||
}))
|
}))
|
||||||
ssh_setup : base64encode(templatefile("${path.module}/templates/ssh-setup.sh", {
|
ssh_setup : base64encode(templatefile("${path.module}/templates/scripts/ssh-setup.sh", {
|
||||||
admin_user : var.admin_user
|
admin_user : var.admin_user
|
||||||
}))
|
}))
|
||||||
microk8s_setup : base64encode(templatefile("${path.module}/templates/microk8s-setup.sh", {
|
microk8s_setup : base64encode(templatefile("${path.module}/templates/scripts/microk8s-setup.sh", {
|
||||||
microk8s_channel : var.microk8s_channel
|
microk8s_channel : var.microk8s_channel
|
||||||
main_node : false
|
main_node : false
|
||||||
}))
|
}))
|
||||||
cluster_setup_values : base64encode(templatefile("${path.module}/templates/cluster-setup-values.yaml", {
|
cluster_setup_values : base64encode(templatefile("${path.module}/templates/helm/cluster-setup-values.yaml", {
|
||||||
client_id : var.vault_service_principal.client_id
|
client_id : var.vault_service_principal.client_id
|
||||||
client_secret : var.vault_service_principal.client_secret
|
client_secret : var.vault_service_principal.client_secret
|
||||||
}))
|
}))
|
||||||
argocd_ha_values : base64encode(file("${path.module}/templates/argocd-values-ha.yaml"))
|
argocd_ha_values : base64encode(file("${path.module}/templates/helm/argocd-values-ha.yaml"))
|
||||||
cluster_setup : base64encode(templatefile("${path.module}/templates/cluster-setup.sh", {
|
cluster_setup : base64encode(templatefile("${path.module}/templates/scripts/cluster-setup.sh", {
|
||||||
argocd_environment : var.argocd_environment
|
argocd_environment : var.argocd_environment
|
||||||
high_availability : var.number_nodes > 2
|
high_availability : var.number_nodes > 2
|
||||||
}))
|
}))
|
||||||
|
|||||||
Reference in New Issue
Block a user