Page MenuHomePhabricator

Add kubernetes 1.17+ topology annotations
Closed, ResolvedPublic

Description

https://kubernetes.io/docs/reference/kubernetes-api/labels-annotations-taints/

Starting with kubernetes v1.17 the topology annotations have hanged. We should add the new ones already just in case.

  • beta.kubernetes.io/instance-type (deprecated)

    Note: Starting in v1.17, this label is deprecated in favor of node.kubernetes.io/instance-type.
  • failure-domain.beta.kubernetes.io/region (deprecated)

    Note: Starting in v1.17, this label is deprecated in favor of topology.kubernetes.io/region.
  • failure-domain.beta.kubernetes.io/zone (deprecated)

    Note: Starting in v1.17, this label is deprecated in favor of topology.kubernetes.io/zone.

Event Timeline

Currently we're setting those per node in hiera. Would be nice to have that automated (T229397).

akosiaris renamed this task from Add kubernetes 1.17+ typology annotations to Add kubernetes 1.17+ topology annotations.Dec 16 2020, 2:23 PM
akosiaris updated the task description. (Show Details)

Change 710967 had a related patch set uploaded (by JMeybohm; author: JMeybohm):

[operations/puppet@production] Add Kubernetes 1.17+ typolofy annotations

https://gerrit.wikimedia.org/r/710967

Change 710967 merged by JMeybohm:

[operations/puppet@production] Add Kubernetes 1.17+ typology annotations

https://gerrit.wikimedia.org/r/710967

the typology annotations where integrated with Kubernetes 1.17. Earlier kubelet versions reject the labels with:

--node-labels in the 'kubernetes.io' namespace must begin with an allowed prefix (kubelet.kubernetes.io, node.kubernetes.io) or be in the specifically allowed set (beta.kubernetes.io/arch, beta.kubernetes.io/instance-type, beta.kubernetes.io/os, failure-domain.beta.kubernetes.io/region, failure-domain.beta.kubernetes.io/zone, failure-domain.kubernetes.io/region, failure-domain.kubernetes.io/zone, kubernetes.io/arch, kubernetes.io/hostname, kubernetes.io/instance-type, kubernetes.io/os)

Change 791597 had a related patch set uploaded (by Alexandros Kosiaris; author: Alexandros Kosiaris):

[operations/puppet@production] WIP: kubernetes: Use netbox data to populate topology labels

https://gerrit.wikimedia.org/r/791597

JMeybohm triaged this task as Medium priority.Nov 18 2022, 9:23 AM

Change 791597 merged by JMeybohm:

[operations/puppet@production] kubernetes: Use netbox data to populate topology labels

https://gerrit.wikimedia.org/r/791597

Change 867589 had a related patch set uploaded (by JMeybohm; author: JMeybohm):

[operations/puppet@production] k8s: Keep deprecated failure-domain.beta.* labels around in 1.23

https://gerrit.wikimedia.org/r/867589

Change 868029 had a related patch set uploaded (by JMeybohm; author: JMeybohm):

[operations/deployment-charts@master] calico: Make ganeti worker nodes peer with core routers (aux)

https://gerrit.wikimedia.org/r/868029

Change 868030 had a related patch set uploaded (by JMeybohm; author: JMeybohm):

[operations/deployment-charts@master] calico: Make ganeti worker nodes peer with core routers

https://gerrit.wikimedia.org/r/868030

Change 868029 merged by jenkins-bot:

[operations/deployment-charts@master] calico: Make ganeti worker nodes peer with core routers (aux)

https://gerrit.wikimedia.org/r/868029

Change 868030 merged by jenkins-bot:

[operations/deployment-charts@master] calico: Make ganeti worker nodes peer with core routers

https://gerrit.wikimedia.org/r/868030

Change 867589 merged by JMeybohm:

[operations/puppet@production] k8s: Keep deprecated failure-domain.beta.* labels around in 1.23

https://gerrit.wikimedia.org/r/867589

This is done (and unfortunately led to T325056: Can't log in or out or save edits - Invalid CSRF token).

I've created T325066: Migrate charts away from deprecated topology annotations to follow up on removing the deprecated annotations after the 1.23 migration has been completed.