From 88ce6c37dba52e3fcc42a572eb687feca814c0c4 Mon Sep 17 00:00:00 2001 From: Enxebre Date: Mon, 12 Mar 2018 12:33:45 +0100 Subject: [PATCH] platform/aws: add user manipulable raw ign config --- modules/aws/master-asg/master.tf | 4 ++++ modules/aws/master-asg/variables.tf | 5 +++++ modules/aws/worker-asg/variables.tf | 5 +++++ modules/aws/worker-asg/worker.tf | 4 ++++ steps/assets/resources/ignition-master.ign | 3 +++ steps/assets/resources/ignition-worker.ign | 3 +++ steps/bootstrap/main.tf | 10 ++++++++++ 7 files changed, 34 insertions(+) create mode 100644 steps/assets/resources/ignition-master.ign create mode 100644 steps/assets/resources/ignition-worker.ign diff --git a/modules/aws/master-asg/master.tf b/modules/aws/master-asg/master.tf index e5ceb53e11..9a53368cb9 100644 --- a/modules/aws/master-asg/master.tf +++ b/modules/aws/master-asg/master.tf @@ -65,6 +65,10 @@ data "ignition_config" "tnc_master" { } files = ["${data.ignition_file.kubelet_master_kubeconfig.id}"] + + append { + source = "data:text/plain;charset=utf-8;base64,${base64encode(var.user_ign)}" + } } data "ignition_file" "kubelet_master_kubeconfig" { diff --git a/modules/aws/master-asg/variables.tf b/modules/aws/master-asg/variables.tf index 3244897979..724bfd1aae 100644 --- a/modules/aws/master-asg/variables.tf +++ b/modules/aws/master-asg/variables.tf @@ -109,3 +109,8 @@ variable "kubeconfig_content" { type = "string" default = "" } + +variable "user_ign" { + type = "string" + default = "" +} diff --git a/modules/aws/worker-asg/variables.tf b/modules/aws/worker-asg/variables.tf index ca2fdd5bf2..052f5f3352 100644 --- a/modules/aws/worker-asg/variables.tf +++ b/modules/aws/worker-asg/variables.tf @@ -93,3 +93,8 @@ variable "kubeconfig_content" { type = "string" default = "" } + +variable "user_ign" { + type = "string" + default = "" +} diff --git a/modules/aws/worker-asg/worker.tf b/modules/aws/worker-asg/worker.tf index af99ea11db..48c9aacee0 100644 --- a/modules/aws/worker-asg/worker.tf +++ b/modules/aws/worker-asg/worker.tf @@ -31,6 +31,10 @@ data "ignition_config" "tnc_worker" { } files = ["${data.ignition_file.kubelet_worker_kubeconfig.id}"] + + append { + source = "data:text/plain;charset=utf-8;base64,${base64encode(var.user_ign)}" + } } data "ignition_file" "kubelet_worker_kubeconfig" { diff --git a/steps/assets/resources/ignition-master.ign b/steps/assets/resources/ignition-master.ign new file mode 100644 index 0000000000..a21d67e6f8 --- /dev/null +++ b/steps/assets/resources/ignition-master.ign @@ -0,0 +1,3 @@ +{ + "ignition": { "version": "2.1.0" } +} diff --git a/steps/assets/resources/ignition-worker.ign b/steps/assets/resources/ignition-worker.ign new file mode 100644 index 0000000000..a21d67e6f8 --- /dev/null +++ b/steps/assets/resources/ignition-worker.ign @@ -0,0 +1,3 @@ +{ + "ignition": { "version": "2.1.0" } +} diff --git a/steps/bootstrap/main.tf b/steps/bootstrap/main.tf index ac2d49c48d..c611cf1f2f 100644 --- a/steps/bootstrap/main.tf +++ b/steps/bootstrap/main.tf @@ -121,6 +121,7 @@ module "masters" { subnet_ids = "${module.vpc.master_subnet_ids}" ec2_ami = "${var.tectonic_aws_ec2_ami_override}" kubeconfig_content = "${local.kubeconfig_kubelet_content}" + user_ign = "${data.template_file.user_ign_master.rendered}" } module "workers" { @@ -146,6 +147,15 @@ module "workers" { ec2_ami = "${var.tectonic_aws_ec2_ami_override}" base_domain = "${var.tectonic_base_domain}" kubeconfig_content = "${local.kubeconfig_kubelet_content}" + user_ign = "${data.template_file.user_ign_worker.rendered}" +} + +data "template_file" "user_ign_master" { + template = "${file("${path.module}/../assets/resources/ignition-master.ign")}" +} + +data "template_file" "user_ign_worker" { + template = "${file("${path.module}/../assets/resources/ignition-worker.ign")}" } module "dns" {