211 lines
8.5 KiB
JSON
211 lines
8.5 KiB
JSON
|
{
|
||
|
"builders": [
|
||
|
{
|
||
|
"access_key": "{{user `aws_access_key`}}",
|
||
|
"ami_description": "{{user `ami_description`}}",
|
||
|
"ami_groups": "{{user `ami_groups`}}",
|
||
|
"ami_name": "capa-ami-{{user `build_name`}}-{{user `kubernetes_semver` | clean_resource_name}}-{{user `build_timestamp`}}",
|
||
|
"ami_product_codes": "",
|
||
|
"ami_regions": "{{user `ami_regions`}}",
|
||
|
"ami_users": "{{user `ami_users`}}",
|
||
|
"encrypt_boot": "{{user `encrypted`}}",
|
||
|
"iam_instance_profile": "{{user `iam_instance_profile`}}",
|
||
|
"instance_type": "{{user `builder_instance_type`}}",
|
||
|
"kms_key_id": "{{user `kms_key_id`}}",
|
||
|
"launch_block_device_mappings": [
|
||
|
{
|
||
|
"delete_on_termination": true,
|
||
|
"device_name": "{{ user `root_device_name` }}",
|
||
|
"iops": "{{ user `iops`}}",
|
||
|
"throughput": "{{ user `throughput` }}",
|
||
|
"volume_size": "{{ user `volume_size` }}",
|
||
|
"volume_type": "{{ user `volume_type` }}"
|
||
|
}
|
||
|
],
|
||
|
"name": "{{user `build_name`}}",
|
||
|
"profile": "{{ user `aws_profile`}}",
|
||
|
"region": "{{ user `aws_region` }}",
|
||
|
"secret_key": "{{user `aws_secret_key`}}",
|
||
|
"security_group_ids": "{{user `aws_security_group_ids`}}",
|
||
|
"skip_create_ami": "{{ user `skip_create_ami`}}",
|
||
|
"skip_profile_validation": "{{user `skip_profile_validation`}}",
|
||
|
"snapshot_groups": "{{user `snapshot_groups`}}",
|
||
|
"snapshot_users": "{{user `snapshot_users`}}",
|
||
|
"source_ami": "{{user `source_ami`}}",
|
||
|
"source_ami_filter": {
|
||
|
"filters": {
|
||
|
"architecture": "x86_64",
|
||
|
"name": "{{user `ami_filter_name`}}",
|
||
|
"root-device-type": "ebs",
|
||
|
"virtualization-type": "hvm"
|
||
|
},
|
||
|
"most_recent": true,
|
||
|
"owners": "{{user `ami_filter_owners`}}"
|
||
|
},
|
||
|
"ssh_keypair_name": "{{user `ssh_keypair_name`}}",
|
||
|
"ssh_private_key_file": "{{user `ssh_private_key_file`}}",
|
||
|
"ssh_username": "{{user `ssh_username`}}",
|
||
|
"subnet_id": "{{ user `subnet_id` }}",
|
||
|
"tags": {
|
||
|
"build_date": "{{isotime}}",
|
||
|
"build_timestamp": "{{user `build_timestamp`}}",
|
||
|
"containerd_version": "{{user `containerd_version`}}",
|
||
|
"distribution": "{{user `distribution`}}",
|
||
|
"distribution_release": "{{user `distribution_release`}}",
|
||
|
"distribution_version": "{{user `distribution_version`}}",
|
||
|
"image_builder_version": "{{user `ib_version`}}",
|
||
|
"kubernetes_cni_version": "{{user `kubernetes_cni_semver`}}",
|
||
|
"kubernetes_version": "{{user `kubernetes_semver`}}",
|
||
|
"source_ami": "{{user `source_ami`}}"
|
||
|
},
|
||
|
"temporary_security_group_source_cidrs": "{{ user `temporary_security_group_source_cidrs` }}",
|
||
|
"token": "{{ user `aws_session_token` }}",
|
||
|
"type": "amazon-ebs",
|
||
|
"user_data": "{{ user `user_data` }}",
|
||
|
"vpc_id": "{{ user `vpc_id` }}"
|
||
|
}
|
||
|
],
|
||
|
"post-processors": [
|
||
|
{
|
||
|
"custom_data": {
|
||
|
"containerd_version": "{{user `containerd_version`}}",
|
||
|
"kubernetes_cni_version": "{{user `kubernetes_cni_semver`}}",
|
||
|
"kubernetes_version": "{{user `kubernetes_semver`}}"
|
||
|
},
|
||
|
"output": "{{user `manifest_output`}}",
|
||
|
"type": "manifest"
|
||
|
}
|
||
|
],
|
||
|
"provisioners": [
|
||
|
{
|
||
|
"environment_vars": [
|
||
|
"BUILD_NAME={{user `build_name`}}"
|
||
|
],
|
||
|
"inline": [
|
||
|
"if [ $BUILD_NAME != \"ubuntu-1804\" ]; then exit 0; fi",
|
||
|
"while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 'Waiting for cloud-init...'; sleep 1; done",
|
||
|
"sudo apt-get -qq update && sudo DEBIAN_FRONTEND=noninteractive apt-get -qqy install python python-pip"
|
||
|
],
|
||
|
"type": "shell"
|
||
|
},
|
||
|
{
|
||
|
"execute_command": "BUILD_NAME={{user `build_name`}}; if [[ \"${BUILD_NAME}\" == *\"flatcar\"* ]]; then sudo {{.Vars}} -S -E bash '{{.Path}}'; fi",
|
||
|
"script": "./packer/files/flatcar/scripts/bootstrap-flatcar.sh",
|
||
|
"type": "shell"
|
||
|
},
|
||
|
{
|
||
|
"ansible_env_vars": [
|
||
|
"ANSIBLE_SSH_ARGS='{{user `existing_ansible_ssh_args`}} {{user `ansible_common_ssh_args`}}'"
|
||
|
],
|
||
|
"extra_arguments": [
|
||
|
"--extra-vars",
|
||
|
"{{user `ansible_common_vars`}}",
|
||
|
"--extra-vars",
|
||
|
"{{user `ansible_extra_vars`}}",
|
||
|
"--extra-vars",
|
||
|
"{{user `ansible_user_vars`}}",
|
||
|
"--scp-extra-args",
|
||
|
"{{user `ansible_scp_extra_args`}}"
|
||
|
],
|
||
|
"playbook_file": "./ansible/node.yml",
|
||
|
"type": "ansible"
|
||
|
},
|
||
|
{
|
||
|
"arch": "{{user `goss_arch`}}",
|
||
|
"download_path": "{{user `goss_download_path`}}",
|
||
|
"format": "{{user `goss_format`}}",
|
||
|
"format_options": "{{user `goss_format_options`}}",
|
||
|
"goss_file": "{{user `goss_entry_file`}}",
|
||
|
"inspect": "{{user `goss_inspect_mode`}}",
|
||
|
"remote_folder": "{{user `goss_remote_folder`}}",
|
||
|
"remote_path": "{{user `goss_remote_path`}}",
|
||
|
"skip_install": "{{user `goss_skip_install`}}",
|
||
|
"tests": [
|
||
|
"{{user `goss_tests_dir`}}"
|
||
|
],
|
||
|
"type": "goss",
|
||
|
"url": "{{user `goss_url`}}",
|
||
|
"use_sudo": true,
|
||
|
"vars_file": "{{user `goss_vars_file`}}",
|
||
|
"vars_inline": {
|
||
|
"ARCH": "amd64",
|
||
|
"OS": "{{user `distribution` | lower}}",
|
||
|
"OS_VERSION": "{{user `distribution_version` | lower}}",
|
||
|
"PROVIDER": "amazon",
|
||
|
"containerd_version": "{{user `containerd_version`}}",
|
||
|
"kubernetes_cni_deb_version": "{{ user `kubernetes_cni_deb_version` }}",
|
||
|
"kubernetes_cni_rpm_version": "{{ split (user `kubernetes_cni_rpm_version`) \"-\" 0 }}",
|
||
|
"kubernetes_cni_source_type": "{{user `kubernetes_cni_source_type`}}",
|
||
|
"kubernetes_cni_version": "{{user `kubernetes_cni_semver` | replace \"v\" \"\" 1}}",
|
||
|
"kubernetes_deb_version": "{{ user `kubernetes_deb_version` }}",
|
||
|
"kubernetes_rpm_version": "{{ split (user `kubernetes_rpm_version`) \"-\" 0 }}",
|
||
|
"kubernetes_source_type": "{{user `kubernetes_source_type`}}",
|
||
|
"kubernetes_version": "{{user `kubernetes_semver` | replace \"v\" \"\" 1}}"
|
||
|
},
|
||
|
"version": "{{user `goss_version`}}"
|
||
|
}
|
||
|
],
|
||
|
"variables": {
|
||
|
"amazon_ssm_agent_rpm": "https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm",
|
||
|
"ami_description": "Cluster API base image designed for {{user `kubernetes_semver`}}",
|
||
|
"ami_groups": "all",
|
||
|
"ami_regions": "ap-south-1,eu-west-3,eu-west-2,eu-west-1,ap-northeast-2,ap-northeast-1,sa-east-1,ca-central-1,ap-southeast-1,ap-southeast-2,eu-central-1,us-east-1,us-east-2,us-west-1,us-west-2",
|
||
|
"ami_users": "",
|
||
|
"ansible_common_vars": "",
|
||
|
"ansible_extra_vars": "",
|
||
|
"ansible_scp_extra_args": "",
|
||
|
"ansible_user_vars": "",
|
||
|
"aws_access_key": "",
|
||
|
"aws_profile": "",
|
||
|
"aws_region": "us-east-1",
|
||
|
"aws_secret_key": "",
|
||
|
"aws_security_group_ids": "",
|
||
|
"aws_session_token": "",
|
||
|
"build_timestamp": "{{timestamp}}",
|
||
|
"builder_instance_type": "t3.small",
|
||
|
"containerd_sha256": null,
|
||
|
"containerd_url": "https://github.com/containerd/containerd/releases/download/v{{user `containerd_version`}}/cri-containerd-cni-{{user `containerd_version`}}-linux-amd64.tar.gz",
|
||
|
"containerd_version": null,
|
||
|
"crictl_url": "https://github.com/kubernetes-sigs/cri-tools/releases/download/v{{user `crictl_version`}}/crictl-v{{user `crictl_version`}}-linux-amd64.tar.gz",
|
||
|
"crictl_version": null,
|
||
|
"encrypted": "false",
|
||
|
"existing_ansible_ssh_args": "{{env `ANSIBLE_SSH_ARGS`}}",
|
||
|
"iam_instance_profile": "",
|
||
|
"ib_version": "{{env `IB_VERSION`}}",
|
||
|
"iops": "3000",
|
||
|
"kms_key_id": "",
|
||
|
"kubernetes_cni_deb_version": null,
|
||
|
"kubernetes_cni_http_source": null,
|
||
|
"kubernetes_cni_rpm_version": null,
|
||
|
"kubernetes_cni_semver": null,
|
||
|
"kubernetes_cni_source_type": null,
|
||
|
"kubernetes_container_registry": null,
|
||
|
"kubernetes_deb_gpg_key": null,
|
||
|
"kubernetes_deb_repo": null,
|
||
|
"kubernetes_deb_version": null,
|
||
|
"kubernetes_http_source": null,
|
||
|
"kubernetes_load_additional_imgs": null,
|
||
|
"kubernetes_rpm_gpg_check": null,
|
||
|
"kubernetes_rpm_gpg_key": null,
|
||
|
"kubernetes_rpm_repo": null,
|
||
|
"kubernetes_rpm_version": null,
|
||
|
"kubernetes_semver": null,
|
||
|
"kubernetes_source_type": null,
|
||
|
"manifest_output": "manifest.json",
|
||
|
"python_path": "",
|
||
|
"skip_create_ami": "false",
|
||
|
"skip_profile_validation": "false",
|
||
|
"snapshot_groups": "all",
|
||
|
"snapshot_users": "",
|
||
|
"ssh_keypair_name": "",
|
||
|
"ssh_private_key_file": "",
|
||
|
"subnet_id": "",
|
||
|
"temporary_security_group_source_cidrs": "",
|
||
|
"throughput": "125",
|
||
|
"user_data": "#cloud-config\nrepo_upgrade: none",
|
||
|
"volume_size": "8",
|
||
|
"volume_type": "gp3",
|
||
|
"vpc_id": ""
|
||
|
}
|
||
|
}
|