overlay coreos-base/flatcar-eks: remove oem spec

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
This commit is contained in:
Mathieu Tortuyaux 2023-08-24 13:57:32 +02:00
parent 8ba940b931
commit 735dfb4001
No known key found for this signature in database
GPG Key ID: AC5CCFB52545D9B8
3 changed files with 28 additions and 30 deletions

View File

@ -1,6 +1,6 @@
--- orig/bootstrap.sh 2021-02-02 14:04:27.121358890 +0100
+++ flatcar/bootstrap.sh 2021-02-02 14:07:15.175175277 +0100
@@ -268,6 +268,9 @@
--- orig/bootstrap.sh
+++ flatcar/bootstrap.sh
@@ -268,6 +268,9 @@ if [ -z "$CLUSTER_NAME" ]; then
exit 1
fi
@ -10,77 +10,75 @@
TOKEN=$(get_token)
AWS_DEFAULT_REGION=$(get_meta_data 'latest/dynamic/instance-identity/document' | jq .region -r)
@@ -284,7 +287,8 @@
PAUSE_CONTAINER="$PAUSE_CONTAINER_IMAGE:$PAUSE_CONTAINER_VERSION"
@@ -285,6 +288,8 @@ PAUSE_CONTAINER="$PAUSE_CONTAINER_IMAGE:$PAUSE_CONTAINER_VERSION"
### kubelet kubeconfig
-
+shopt -s expand_aliases
+alias aws="docker run --rm --network host amazon/aws-cli"
CA_CERTIFICATE_DIRECTORY=/etc/kubernetes/pki
CA_CERTIFICATE_FILE_PATH=$CA_CERTIFICATE_DIRECTORY/ca.crt
mkdir -p $CA_CERTIFICATE_DIRECTORY
@@ -324,9 +328,9 @@
@@ -324,9 +329,9 @@ fi
echo $B64_CLUSTER_CA | base64 -d > $CA_CERTIFICATE_FILE_PATH
-sed -i s,CLUSTER_NAME,$CLUSTER_NAME,g /var/lib/kubelet/kubeconfig
-sed -i s,MASTER_ENDPOINT,$APISERVER_ENDPOINT,g /var/lib/kubelet/kubeconfig
-sed -i s,AWS_REGION,$AWS_DEFAULT_REGION,g /var/lib/kubelet/kubeconfig
+sed -i s,CLUSTER_NAME,$CLUSTER_NAME,g /oem/eks/kubelet-kubeconfig
+sed -i s,MASTER_ENDPOINT,$APISERVER_ENDPOINT,g /oem/eks/kubelet-kubeconfig
+sed -i s,AWS_REGION,$AWS_DEFAULT_REGION,g /oem/eks/kubelet-kubeconfig
+sed -i s,CLUSTER_NAME,$CLUSTER_NAME,g /usr/share/amazon/eks/kubelet-kubeconfig
+sed -i s,MASTER_ENDPOINT,$APISERVER_ENDPOINT,g /usr/share/amazon/eks/kubelet-kubeconfig
+sed -i s,AWS_REGION,$AWS_DEFAULT_REGION,g /usr/share/amazon/eks/kubelet-kubeconfig
### kubelet.service configuration
if [[ -z "${DNS_CLUSTER_IP}" ]]; then
@@ -345,7 +349,7 @@
@@ -345,7 +350,7 @@ else
DNS_CLUSTER_IP="${DNS_CLUSTER_IP}"
fi
-KUBELET_CONFIG=/etc/kubernetes/kubelet/kubelet-config.json
+KUBELET_CONFIG=/oem/eks/kubelet-config.json
+KUBELET_CONFIG=/usr/share/amazon/eks/kubelet-config.json
echo "$(jq ".clusterDNS=[\"$DNS_CLUSTER_IP\"]" $KUBELET_CONFIG)" > $KUBELET_CONFIG
INTERNAL_IP=$(get_meta_data 'latest/meta-data/local-ipv4')
@@ -357,7 +361,7 @@
@@ -357,7 +362,7 @@ INSTANCE_TYPE=$(get_meta_data 'latest/meta-data/instance-type')
# with this formula when scheduling pods: Allocatable = Capacity - Reserved - Eviction Threshold.
#calculate the max number of pods per instance type
-MAX_PODS_FILE="/etc/eks/eni-max-pods.txt"
+MAX_PODS_FILE="/oem/eks/eni-max-pods.txt"
+MAX_PODS_FILE="/usr/share/amazon/eks/eni-max-pods.txt"
set +o pipefail
MAX_PODS=$(cat $MAX_PODS_FILE | awk "/^${INSTANCE_TYPE:-unset}/"' { print $2 }')
set -o pipefail
@@ -382,6 +386,8 @@
@@ -382,6 +387,8 @@ if [[ "$USE_MAX_PODS" = "true" ]]; then
fi
fi
+cp /oem/eks/kubelet.service /etc/systemd/system/
+cp /usr/share/amazon/eks/kubelet.service /etc/systemd/system/
+
mkdir -p /etc/systemd/system/kubelet.service.d
cat <<EOF > /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf
@@ -396,10 +402,16 @@
EOF
@@ -397,9 +404,14 @@ EOF
fi
+
# Replace with custom docker config contents.
+mkdir -p /etc/docker
if [[ -n "$DOCKER_CONFIG_JSON" ]]; then
echo "$DOCKER_CONFIG_JSON" > /etc/docker/daemon.json
systemctl restart docker
+else
+ # Copy the docker config shipped in /oem
+ cp /oem/eks/docker-daemon.json /etc/docker/daemon.json
+ # Copy the docker config shipped in /usr/share/amazon/eks
+ cp /usr/share/amazon/eks/docker-daemon.json /etc/docker/daemon.json
+ systemctl restart docker
fi
if [[ "$ENABLE_DOCKER_BRIDGE" = "true" ]]; then
@@ -409,7 +421,19 @@
@@ -408,8 +420,20 @@ if [[ "$ENABLE_DOCKER_BRIDGE" = "true" ]]; then
echo "$(jq '.bridge="docker0" | ."live-restore"=false' /etc/docker/daemon.json)" > /etc/docker/daemon.json
systemctl restart docker
fi
+
+# sysctl tweaking
+cat <<EOF | sudo tee -a /etc/sysctl.d/99-kubelet.conf
+# Needed for protectKernelDefaults=true
@ -91,7 +89,7 @@
+fs.inotify.max_user_watches=524288
+vm.max_map_count=524288
+EOF
+
systemctl daemon-reload
+systemctl restart systemd-sysctl
systemctl enable kubelet

View File

@ -7,12 +7,12 @@ After=docker.service iptables-restore.service
[Service]
EnvironmentFile=/run/metadata/flatcar
ExecStartPre=/oem/eks/download-kubelet.sh
ExecStartPre=/usr/share/amazon/eks/download-kubelet.sh
ExecStartPre=/sbin/iptables -P FORWARD ACCEPT -w 5
ExecStart=/opt/eks/kubelet \
ExecStart=/usr/share/amazon/eks/kubelet \
--cloud-provider aws \
--config /oem/eks/kubelet-config.json \
--kubeconfig /oem/eks/kubelet-kubeconfig \
--config /usr/share/amazon/eks/kubelet-config.json \
--kubeconfig /usr/share/amazon/eks/kubelet-kubeconfig \
--container-runtime docker \
--network-plugin cni \
--cni-bin-dir=/opt/cni/bin \

View File

@ -31,7 +31,7 @@ src_prepare() {
}
src_install() {
insinto /oem/eks
insinto /usr/share/amazon/eks
doins "${WORKDIR}/bootstrap.sh"
# These files are based on the ones found on the amazon-eks-ami repository,
@ -53,5 +53,5 @@ src_install() {
# necessary files to run the kubelet on the node.
doins "${FILESDIR}/download-kubelet.sh"
chmod +x "${D}/oem/eks/bootstrap.sh" "${D}/oem/eks/download-kubelet.sh"
chmod +x "${D}/usr/share/amazon/eks/bootstrap.sh" "${D}/usr/share/amazon/eks/download-kubelet.sh"
}