33exec >&2
44set -eu -o pipefail
55
6- declare -r SECRETS_DIR=" /.bottlerocket/rootfs/root/.aws"
6+ declare -r HOST_ROOTFS=" /.bottlerocket/rootfs"
7+ declare -r SECRETS_DIR=" ${HOST_ROOTFS} /root/.aws"
8+ declare -r EKS_HYBRID_AWS_DIR=" /root/.aws/eks-hybrid"
9+ declare -r EKS_HYBRID_SHARED_CREDENTIALS_FILE=" ${EKS_HYBRID_AWS_DIR} /credentials"
10+ declare -r EKS_HYBRID_POD_IDENTITY_AWS_DIR=" ${HOST_ROOTFS} /var/eks-hybrid/.aws"
11+ declare -r SIGNING_HELPER_SERVICE=" aws-signing-helper-update.service"
12+ declare -r SIGNING_HELPER_SERVICE_TEMPLATE_PATH=" /usr/share/bootstrap/${SIGNING_HELPER_SERVICE} .in"
13+ declare -r SYSTEMD_UNIT_DIR=" ${HOST_ROOTFS} /run/systemd/system"
14+ declare -r SIGNING_HELPER_SERVICE_PATH=" ${SYSTEMD_UNIT_DIR} /${SIGNING_HELPER_SERVICE} "
715
816DRY_RUN=" false"
917for opt in " $@ " ; do
@@ -43,6 +51,17 @@ if ! [ "${DRY_RUN}" = "true" ]; then
4351 fi
4452fi
4553
54+ get_aws-signing-helper-update_command () {
55+ local credential_process_from_config
56+ credential_process_from_config=" $( AWS_CONFIG_FILE=" $1 " aws configure get profile.default.credential_process) "
57+ if [ -n " ${credential_process_from_config} " ]; then
58+ echo " ${credential_process_from_config/ aws_signing_helper credential-process/ aws_signing_helper update} "
59+ else
60+ echo " Error: No credential_process found in default profile" >&2
61+ return 1
62+ fi
63+ }
64+
4665cat << EOF > "${SECRETS_DIR} /node.crt"
4766${NODE_CERT_DATA}
4867EOF
@@ -51,6 +70,20 @@ cat << EOF > "${SECRETS_DIR}/node.key"
5170${NODE_KEY_DATA}
5271EOF
5372
73+ if [ " ${DRY_RUN} " = " true" ]; then
74+ exit 0
75+ fi
76+
77+ SIGNING_HELPER_UPDATE_COMMAND=" $( get_aws-signing-helper-update_command ${SECRETS_DIR} /config) "
78+ export EKS_HYBRID_SHARED_CREDENTIALS_FILE SIGNING_HELPER_UPDATE_COMMAND
79+ # shellcheck disable=SC2016 # we want to replace the variables verbatim
80+ envsubst ' ${EKS_HYBRID_SHARED_CREDENTIALS_FILE}:${SIGNING_HELPER_UPDATE_COMMAND}' \
81+ < " ${SIGNING_HELPER_SERVICE_TEMPLATE_PATH} " \
82+ > " ${SIGNING_HELPER_SERVICE_PATH} "
83+ chroot " ${HOST_ROOTFS} " systemctl enable " ${SIGNING_HELPER_SERVICE} " --no-reload --quiet
84+ mkdir -p " $( dirname " ${EKS_HYBRID_POD_IDENTITY_AWS_DIR} " ) "
85+ ln -sf " ${EKS_HYBRID_AWS_DIR} " " ${EKS_HYBRID_POD_IDENTITY_AWS_DIR} "
86+
5487variant_id=" $( apiclient get os.variant_id | jq -r ' .os.variant_id' ) "
5588version_id=" $( apiclient get os.version_id | jq -r ' .os.version_id' ) "
5689apiclient set \
0 commit comments