local provisioners = import 'jsonnet/lib/provisioners.libsonnet'; local type = std.extVar('type'); { local images = { lxd: { local lxd_base_image = 'images:alpine/3.15', local lxd_container_name = 'flow-infra-lxd-packer-builder', local lxd_image_name = 'flow-infra-local', source: { lxd: { flow_infra: { container_name: lxd_container_name, image: lxd_base_image, publish_properties: { description: 'LXD image for Flow Infrastructure Development', }, virtual_machine: false, }, }, }, build_source_ref: { 'lxd.flow_infra': { name: lxd_image_name, output_image: lxd_image_name, }, }, }, linode: { source: {}, build_source_ref: {}, }, }, source: images[type].source, build: { local flow_username = 'flow', local flow_gid = 22379, local flow_uid = 22379, local root_setup_directory = '/etc/flow/setup', source: images[type].build_source_ref, provisioner: [ provisioners.installBash, provisioners.runSetup(flow_username, flow_gid, flow_uid, root_setup_directory), provisioners.uploadDockerCompose(root_setup_directory), provisioners.uploadBootstrapScript(root_setup_directory), provisioners.uploadTraefikTemplates(root_setup_directory), provisioners.uploadGiteaTemplates(root_setup_directory), ], }, }