Skip to content
This repository has been archived by the owner on Sep 30, 2020. It is now read-only.

[v0.16.x] Fix node name labelling in v0.16.x clusters. #1894

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 51 additions & 17 deletions builtin/files/userdata/cloud-config-controller
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,6 @@ coreos:

# FIXME: Remove dependency on the apiserver insecure port
ExecStartPre=/usr/bin/bash -c "until /usr/bin/curl -s -k https://127.0.0.1/version; do echo waiting until apiserver starts; sleep 10; done"

ExecStart=/opt/bin/retry 10 /opt/bin/install-kube-system

{{ if $.ElasticFileSystemID }}
Expand Down Expand Up @@ -490,6 +489,21 @@ coreos:
RemainAfterExit=true
ExecStart=/opt/bin/kubernetes-io-node-label

- name: kubernetes-io-node-worker-labels.service
enable: true
command: start
runtime: true
content: |
[Unit]
Description=Label kubernetes worker nodes with kubernetes.io labels.

[Service]
Type=simple
Restart=on-failure
RestartSec=30
ExecStartPre=/usr/bin/systemctl is-active kubelet
ExecStart=/opt/bin/kubernetes-io-node-worker-labels

{{if .Experimental.AwsNodeLabels.Enabled }}
- name: kube-node-label.service
enable: true
Expand Down Expand Up @@ -754,23 +768,43 @@ write_files:
#!/bin/bash -e
set -ue

# FIXME: Remove dependency on the apiserver insecure port
until /usr/bin/curl -s -f http://127.0.0.1:8080/version; do echo waiting until apiserver starts; sleep 1; done
vols="-v /srv/kubernetes:/srv/kubernetes:ro -v /etc/kubernetes:/etc/kubernetes:ro -v /srv/kube-aws:/srv/kube-aws:ro"
kubectl() {
/usr/bin/docker run -i --rm $vols --net=host {{.HyperkubeImage.RepoWithTag}} /kubectl --kubeconfig=/etc/kubernetes/kubeconfig/admin.yaml --request-timeout=1s "$@"
}

# FIXME: Remove dependency on the apiserver insecure port
/usr/bin/curl \
--retry 5 \
--request PATCH \
-H 'Content-Type: application/strategic-merge-patch+json' \
-d '{
"metadata": {
"labels": {
"kubernetes.io/role": "master",
"node-role.kubernetes.io/master": ""
}
}
}' \
http://localhost:8080/api/v1/nodes/$(hostname)
while ! kubectl get ns kube-system; do
echo Waiting until kube-system created.
sleep 3
done

hostname=$(hostname)
kubectl label node $hostname kubernetes.io/role="master"
kubectl label node $hostname node-role.kubernetes.io/master=""

- path: /opt/bin/kubernetes-io-node-worker-labels
permissions: 0700
owner: root:root
content: |
#!/bin/bash -e
set -ue

vols="-v /srv/kubernetes:/srv/kubernetes:ro -v /etc/kubernetes:/etc/kubernetes:ro -v /srv/kube-aws:/srv/kube-aws:ro"
kubectl() {
/usr/bin/docker run -i --rm $vols --net=host {{.HyperkubeImage.RepoWithTag}} /kubectl --kubeconfig=/etc/kubernetes/kubeconfig/admin.yaml --request-timeout=1s "$@"
}

while true
do
for node in $(kubectl get nodes -l node.kubernetes.io/pending-node -oname); do
node_name=$(echo $node | cut -d '.' -f1).$(echo $node | cut -d '.' -f2).compute.internal
kubectl label "$node_name" node.kubernetes.io/pending-node-
kubectl label "$node_name" kubernetes.io/role="node"
kubectl label "$node_name" node-role.kubernetes.io/node=""
done

sleep 20
done

{{if .Experimental.AwsNodeLabels.Enabled -}}
- path: /opt/bin/kube-node-label
Expand Down
32 changes: 14 additions & 18 deletions builtin/files/userdata/cloud-config-worker
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ coreos:
--cni-bin-dir=/opt/cni/bin \
--network-plugin={{.K8sNetworkPlugin}} \
--container-runtime={{.ContainerRuntime}} \
--node-labels=node.kubernetes.io/role="node",node.kubernetes.io/role="{{ toLabel .NodePoolName }}"{{if .NodeLabels.Enabled}},{{.NodeLabels.String}}{{end}} \
--node-labels=node.kubernetes.io/pending-node="",node.kubernetes.io/role="{{ toLabel .NodePoolName }}"{{if .NodeLabels.Enabled}},{{.NodeLabels.String}}{{end}} \
--register-node=true \
--config=/etc/kubernetes/config/kubelet.yaml \
{{- if .Taints }}
Expand Down Expand Up @@ -763,23 +763,19 @@ write_files:
#!/bin/bash -e
set -ue

# FIXME: Remove dependency on the apiserver insecure port
until /usr/bin/curl -s -f http://127.0.0.1:8080/version; do echo waiting until apiserver starts; sleep 1; done

# FIXME: Remove dependency on the apiserver insecure port
/usr/bin/curl \
--retry 5 \
--request PATCH \
-H 'Content-Type: application/strategic-merge-patch+json' \
-d '{
"metadata": {
"labels": {
"kubernetes.io/role": "node",
"node-role.kubernetes.io/node": ""
}
}
}' \
http://localhost:8080/api/v1/nodes/$(hostname)
vols="-v /srv/kubernetes:/srv/kubernetes:ro -v /etc/kubernetes:/etc/kubernetes:ro -v /srv/kube-aws:/srv/kube-aws:ro"
kubectl() {
/usr/bin/docker run -i --rm $vols --net=host {{.HyperkubeImage.RepoWithTag}} /kubectl --kubeconfig=/etc/kubernetes/kubeconfig/admin.yaml --request-timeout=1s "$@"
}

while ! kubectl get ns kube-system; do
echo Waiting until kube-system created.
sleep 3
done

hostname=$(hostname)
kubectl label node $hostname kubernetes.io/role="node"
kubectl label node $hostname node-role.kubernetes.io/node=""

{{if .Experimental.AwsNodeLabels.Enabled -}}
- path: /opt/bin/kube-node-label
Expand Down
2 changes: 1 addition & 1 deletion make/test
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ default() {
with-cover() {
test -z "$(find . -path ./vendor -prune -type f -o -name '*.go' -exec gofmt -d {} + | tee /dev/stderr)"
for d in $(go list ./... | grep -v '/vendor/' | grep -v '/hack'); do
go test -timeout 45m -json -v --race -coverprofile=profile.out -covermode=atomic $d | tparse
go test -timeout 45m -json -coverprofile=profile.out -covermode=atomic $d | tparse
if [ -f profile.out ]; then
cat profile.out >> coverage.txt
rm profile.out
Expand Down