diff --git a/.gitignore b/.gitignore index 7bf7974e0..4915541fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ manifest.json *.swp .idea - diff --git a/Makefile b/Makefile index 03ecceab3..e7e4a8a8f 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ PACKER_BINARY ?= packer -PACKER_VARIABLES := aws_region ami_name binary_bucket_name binary_bucket_region kubernetes_version kubernetes_build_date docker_version cni_version cni_plugin_version source_ami_id source_ami_owners arch instance_type security_group_id additional_yum_repos og_image_version ami_regions +PACKER_VARIABLES := aws_region ami_name binary_bucket_name binary_bucket_region kubernetes_version kubernetes_build_date docker_version cni_version cni_plugin_version source_ami_id source_ami_owners arch instance_type security_group_id additional_yum_repos pull_cni_from_github og_image_version ami_regions K8S_VERSION_PARTS := $(subst ., ,$(kubernetes_version)) K8S_VERSION_MINOR := $(word 1,${K8S_VERSION_PARTS}).$(word 2,${K8S_VERSION_PARTS}) @@ -18,6 +18,10 @@ ifeq ($(aws_region), cn-northwest-1) source_ami_owners ?= 141808717104 endif +ifeq ($(aws_region), us-gov-west-1) +source_ami_owners ?= 045324592363 +endif + T_RED := \e[0;31m T_GREEN := \e[0;32m T_YELLOW := \e[0;33m @@ -39,16 +43,20 @@ k8s: validate .PHONY: 1.12 1.12: - $(MAKE) k8s kubernetes_version=1.12.10 kubernetes_build_date=2020-01-22 + $(MAKE) k8s kubernetes_version=1.12.10 kubernetes_build_date=2020-04-17 pull_cni_from_github=true .PHONY: 1.13 1.13: - $(MAKE) k8s kubernetes_version=1.13.12 kubernetes_build_date=2020-01-22 + $(MAKE) k8s kubernetes_version=1.13.12 kubernetes_build_date=2020-04-16 pull_cni_from_github=true .PHONY: 1.14 1.14: - $(MAKE) k8s kubernetes_version=1.14.9 kubernetes_build_date=2020-04-16 - + $(MAKE) k8s kubernetes_version=1.14.9 kubernetes_build_date=2020-04-16 pull_cni_from_github=true + .PHONY: 1.15 1.15: - $(MAKE) k8s kubernetes_version=1.15.11 kkubernetes_build_date=2020-04-16 + $(MAKE) k8s kubernetes_version=1.15.11 kubernetes_build_date=2020-04-16 pull_cni_from_github=true + +.PHONY: 1.16 +1.16: + $(MAKE) k8s kubernetes_version=1.16.8 kubernetes_build_date=2020-04-16 pull_cni_from_github=true diff --git a/OG-CHANGELOG.md b/OG-CHANGELOG.md index 991ad9711..e3eb8ebdf 100644 --- a/OG-CHANGELOG.md +++ b/OG-CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +1.5.0 - 05/12/2020 +----------------------- +- Sync code with upstream + 1.4.2 - 05/06/2020 ----------------------- - downgraded docker version to 18.09.9ce-2.amzn2 diff --git a/eks-worker-al2.json b/eks-worker-al2.json index d59d1cfa0..f0cbe1a56 100644 --- a/eks-worker-al2.json +++ b/eks-worker-al2.json @@ -19,12 +19,13 @@ "cni_plugin_version": "v0.7.5", "og_image_version": "1.2.0", "ami_regions": "us-west-2,us-east-1", + "pull_cni_from_github": "true", "source_ami_id": "", "source_ami_owners": "137112412989", "source_ami_filter_name": "amzn2-ami-minimal-hvm-*", "arch": null, - "instance_type": "m4.large", + "instance_type": null, "ami_description": "EKS Kubernetes Worker AMI with AmazonLinux2 image", "ssh_interface": "", @@ -140,6 +141,7 @@ "DOCKER_VERSION={{user `docker_version`}}", "CNI_VERSION={{user `cni_version`}}", "CNI_PLUGIN_VERSION={{user `cni_plugin_version`}}", + "PULL_CNI_FROM_GITHUB={{user `pull_cni_from_github`}}", "AWS_ACCESS_KEY_ID={{user `aws_access_key_id`}}", "AWS_SECRET_ACCESS_KEY={{user `aws_secret_access_key`}}", "AWS_SESSION_TOKEN={{user `aws_session_token`}}" @@ -164,6 +166,11 @@ "type": "manifest", "output": "manifest.json", "strip_path": true + }, + { + "type": "manifest", + "output": "{{user `ami_name`}}-manifest.json", + "strip_path": true } ] } diff --git a/files/bootstrap.sh b/files/bootstrap.sh index 956800a5e..e2de9fb37 100755 --- a/files/bootstrap.sh +++ b/files/bootstrap.sh @@ -117,6 +117,10 @@ function get_pause_container_account_for_region () { echo "${PAUSE_CONTAINER_ACCOUNT:-918309763551}";; cn-northwest-1) echo "${PAUSE_CONTAINER_ACCOUNT:-961992271922}";; + us-gov-west-1) + echo "${PAUSE_CONTAINER_ACCOUNT:-013241004608}";; + us-gov-east-1) + echo "${PAUSE_CONTAINER_ACCOUNT:-151742754352}";; *) echo "${PAUSE_CONTAINER_ACCOUNT:-602401143452}";; esac diff --git a/log-collector-script/linux/eks-log-collector.sh b/log-collector-script/linux/eks-log-collector.sh index f41728c04..dcea6da54 100644 --- a/log-collector-script/linux/eks-log-collector.sh +++ b/log-collector-script/linux/eks-log-collector.sh @@ -408,7 +408,7 @@ get_ipamd_info() { if [[ "${ignore_introspection}" == "false" ]]; then try "collect L-IPAMD introspectioon information" for entry in ${IPAMD_DATA[*]}; do - curl --max-time 3 --silent http://localhost:61679/v1/"${entry}" >> "${COLLECT_DIR}"/ipamd/"${entry}".txt + curl --max-time 3 --silent http://localhost:61679/v1/"${entry}" >> "${COLLECT_DIR}"/ipamd/"${entry}".json done else echo "Ignoring IPAM introspection stats as mentioned"| tee -a "${COLLECT_DIR}"/ipamd/ipam_introspection_ignore.txt @@ -416,7 +416,7 @@ get_ipamd_info() { if [[ "${ignore_metrics}" == "false" ]]; then try "collect L-IPAMD prometheus metrics" - curl --max-time 3 --silent http://localhost:61678/metrics > "${COLLECT_DIR}"/ipamd/metrics.txt 2>&1 + curl --max-time 3 --silent http://localhost:61678/metrics > "${COLLECT_DIR}"/ipamd/metrics.json 2>&1 else echo "Ignoring Prometheus Metrics collection as mentioned"| tee -a "${COLLECT_DIR}"/ipamd/ipam_metrics_ignore.txt fi diff --git a/log-collector-script/windows/eks-ssm-content.json b/log-collector-script/windows/eks-ssm-content.json index 6cca6c12a..8d2b2df90 100644 --- a/log-collector-script/windows/eks-ssm-content.json +++ b/log-collector-script/windows/eks-ssm-content.json @@ -79,4 +79,3 @@ } ] } - diff --git a/scripts/install-worker.sh b/scripts/install-worker.sh index f995be888..85a626eb2 100644 --- a/scripts/install-worker.sh +++ b/scripts/install-worker.sh @@ -28,6 +28,7 @@ validate_env_set CNI_VERSION validate_env_set CNI_PLUGIN_VERSION validate_env_set KUBERNETES_VERSION validate_env_set KUBERNETES_BUILD_DATE +validate_env_set PULL_CNI_FROM_GITHUB ################################################################################ ### Machine Architecture ####################################################### @@ -158,18 +159,6 @@ sudo mkdir -p /var/lib/kubernetes sudo mkdir -p /var/lib/kubelet sudo mkdir -p /opt/cni/bin -wget https://github.com/containernetworking/cni/releases/download/${CNI_VERSION}/cni-${ARCH}-${CNI_VERSION}.tgz -wget https://github.com/containernetworking/cni/releases/download/${CNI_VERSION}/cni-${ARCH}-${CNI_VERSION}.tgz.sha512 -sudo sha512sum -c cni-${ARCH}-${CNI_VERSION}.tgz.sha512 -sudo tar -xvf cni-${ARCH}-${CNI_VERSION}.tgz -C /opt/cni/bin -rm cni-${ARCH}-${CNI_VERSION}.tgz cni-${ARCH}-${CNI_VERSION}.tgz.sha512 - -wget https://github.com/containernetworking/plugins/releases/download/${CNI_PLUGIN_VERSION}/cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz -wget https://github.com/containernetworking/plugins/releases/download/${CNI_PLUGIN_VERSION}/cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz.sha512 -sudo sha512sum -c cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz.sha512 -sudo tar -xvf cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz -C /opt/cni/bin -rm cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz.sha512 - echo "Downloading binaries from: s3://$BINARY_BUCKET_NAME" S3_DOMAIN="amazonaws.com" if [ "$BINARY_BUCKET_REGION" = "cn-north-1" ] || [ "$BINARY_BUCKET_REGION" = "cn-northwest-1" ]; then @@ -196,6 +185,41 @@ for binary in ${BINARIES[*]} ; do sudo chmod +x $binary sudo mv $binary /usr/bin/ done + +if [ "$PULL_CNI_FROM_GITHUB" = "true" ]; then + echo "Downloading CNI assets from Github" + wget https://github.com/containernetworking/cni/releases/download/${CNI_VERSION}/cni-${ARCH}-${CNI_VERSION}.tgz + wget https://github.com/containernetworking/cni/releases/download/${CNI_VERSION}/cni-${ARCH}-${CNI_VERSION}.tgz.sha512 + + wget https://github.com/containernetworking/plugins/releases/download/${CNI_PLUGIN_VERSION}/cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz + wget https://github.com/containernetworking/plugins/releases/download/${CNI_PLUGIN_VERSION}/cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz.sha512 + sudo sha512sum -c cni-${ARCH}-${CNI_VERSION}.tgz.sha512 + sudo sha512sum -c cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz.sha512 + rm cni-${ARCH}-${CNI_VERSION}.tgz.sha512 + rm cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz.sha512 +else + CNI_BINARIES=( + cni-${ARCH}-${CNI_VERSION}.tgz + cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz + ) + for binary in ${CNI_BINARIES[*]} ; do + if [[ ! -z "$AWS_ACCESS_KEY_ID" ]]; then + echo "AWS cli present - using it to copy binaries from s3." + aws s3 cp --region $BINARY_BUCKET_REGION $S3_PATH/$binary . + aws s3 cp --region $BINARY_BUCKET_REGION $S3_PATH/$binary.sha256 . + sudo sha256sum -c $binary.sha256 + else + echo "AWS cli missing - using wget to fetch cni binaries from s3. Note: This won't work for private bucket." + sudo wget $S3_URL_BASE/$binary + sudo wget $S3_URL_BASE/$binary.sha256 + fi + done +fi +sudo tar -xvf cni-${ARCH}-${CNI_VERSION}.tgz -C /opt/cni/bin +sudo tar -xvf cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz -C /opt/cni/bin +rm cni-${ARCH}-${CNI_VERSION}.tgz +rm cni-plugins-${ARCH}-${CNI_PLUGIN_VERSION}.tgz + sudo rm *.sha256 KUBERNETES_MINOR_VERSION=${KUBERNETES_VERSION%.*} diff --git a/scripts/upgrade_kernel.sh b/scripts/upgrade_kernel.sh index 2962da004..4b7b64dd1 100644 --- a/scripts/upgrade_kernel.sh +++ b/scripts/upgrade_kernel.sh @@ -4,9 +4,10 @@ set -o pipefail set -o nounset set -o errexit -#sudo yum update -y kernel +sudo yum update -y kernel +sudo grubby --update-kernel=ALL --args=udev.event-timeout=300 #sudo amazon-linux-extras install kernel-ng -sudo yum -y install kernel-4.14.133-113.112.amzn2.x86_64 -sudo grubby --set-default /boot/vmlinuz-4.14.133-113.112.amzn2.x86_64 +#sudo yum -y install kernel-4.14.133-113.112.amzn2.x86_64 +#sudo grubby --set-default /boot/vmlinuz-4.14.133-113.112.amzn2.x86_64 --args="ro console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 LANG=en_US.UTF-7 KEYTABLE=us udev.event-timeout=300" echo "rebooting... now" sudo reboot