#Flavour k3s build { name = "k3s" description = <" ] ssh_clear_authorized_keys = true } // Install templater and bootstraper provisioner "shell" { script = "${local.dirs.provisionning}/templater-install.sh" } // Copy configuration values on the image provisioner "shell" { inline = [ "sh -cx 'mkdir -p ${local.builder_config.TemplateDir}'", "sh -cx 'mkdir -p ${local.builder_config.ValueDir}'" ] } // Copy configuration templates to the image provisioner "file" { destination = "${local.builder_config.TemplateDir}/" source = "${local.dirs.templates}/conf/${build.name}/" } // Copy configuration values on the image provisioner "file" { destination = "${local.builder_config.ValueDir}/${build.name}.json" content = "${jsonencode(local.K3S)}" } // Generate default configuration for kubernetes provisioner "shell" { max_retries = 3 inline = [ "sh -cx '/usr/local/bin/btr -c ${local.builder_config.ValueDir}/ -t ${local.builder_config.TemplateDir}'" ] } provisioner "file" { destination = "/tmp/${build.name}.sh" source = "${local.dirs.provisionning}/${build.name}.sh" } provisioner "file" { destination = "/tmp/one-context.sh" source = "${local.dirs.provisionning}/one-context.sh" } provisioner "shell" { inline = [ "sh -cx 'sh /tmp/one-context.sh'", "sh -cx 'sh /tmp/${build.name}.sh'" ] } post-processor "shell-local" { inline = [ "/bin/sh ${path.cwd}/post-processors/sparsify.sh ${var.output_dir}/${var.version}/provisionned/k3s ${var.image_version}", "ruby ${local.dirs.tools}/one-templates -t image -m 640 -T ${local.dirs.templates}/one/image/common.tpl -n ${local.output_name}-${var.version}-k3s -c 'k3s base image' --image-file ${var.output_dir}/${var.version}/provisionned/k3s/${local.output_name}-${var.version}-k3s.img", "ruby ${local.dirs.tools}/one-templates -t vm -m 640 -T ${local.dirs.templates}/one/vm/k3s.xml -n ${local.output_name}-${var.version}-k3s --image-name ${local.output_name}-${var.version}-k3s" ] } }