kubernetes: Incorrect etcd image config for linux/arm64

It looks like config blob inside arm64 version of k8s.gcr.io/etcd:3.4.13-0 has "architecture": "amd64" instead of "architecture": "arm64"

➜  ~ curl -L  k8s.gcr.io/v2/etcd/manifests/3.4.13-0 
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1372,
         "digest": "sha256:bd4d2c9a19be8a492bc79df53eee199fd04b415e9993eb69f7718052602a147a",
         "platform": {
            "architecture": "amd64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1372,
         "digest": "sha256:4cadaf5f37998d038861c66215809eee8316c7604934e03dd86015a0f6704cd3",
         "platform": {
            "architecture": "arm",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1372,
         "digest": "sha256:cab4dc43598ed9b5c6a524dfea1abf4772a5e164c330451e5ca2635a95675aa8",
         "platform": {
            "architecture": "arm64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1373,
         "digest": "sha256:03d9db03b83a5991ede76dd53e19a1e46e6bf3c498ae8ace2e1be8f3d1d03ad6",
         "platform": {
            "architecture": "ppc64le",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1372,
         "digest": "sha256:dd9baad37b716232a737cd781cf65ceb9f7c541264cdde9ad3870d84e8644a49",
         "platform": {
            "architecture": "s390x",
            "os": "linux"
         }
      }
   ]
}%  


➜  ~ curl -L  k8s.gcr.io/v2/etcd/manifests/sha256:cab4dc43598ed9b5c6a524dfea1abf4772a5e164c330451e5ca2635a95675aa8
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
   "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 2929,
      "digest": "sha256:05b738aa1bc6355db8a2ee8639f3631b908286e43f584a3d2ee0c472de033c28"
   },
   "layers": [
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 639412,
         "digest": "sha256:4000adbbc3eb1099e3a263c418f7c1d7def1fa2de0ae00ba48245cda9389c823"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 962465,
         "digest": "sha256:c01a58061c3de2ebe6e61222afcf73ec28cfa2f64788bcf6beed9e06ced5d70a"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 122578700,
         "digest": "sha256:7e982895c1fce6598d3ae953ac54ceac9f9846ff1ae4101d8f885b6400a8d92a"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1090470,
         "digest": "sha256:3c187ad2b50e732c3d1aceb28f94c6358711e99b85ddd6c976b0d882c7cb24df"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 9254541,
         "digest": "sha256:aedf218301234b573821148738d44bf450f16e33d7f33b671c7a068f74d8b10b"
      }
   ]
}% 





➜  ~ curl -L  k8s.gcr.io/v2/etcd/blobs/sha256:05b738aa1bc6355db8a2ee8639f3631b908286e43f584a3d2ee0c472de033c28 | jq

{
  "architecture": "amd64",
  "config": {
    "Hostname": "",
    "Domainname": "",
    "User": "",
    "AttachStdin": false,
    "AttachStdout": false,
    "AttachStderr": false,
    "ExposedPorts": {
      "2379/tcp": {},
      "2380/tcp": {},
      "4001/tcp": {},
      "7001/tcp": {}
    },
    "Tty": false,
    "OpenStdin": false,
    "StdinOnce": false,
    "Env": [
      "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
      "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt",
      "ETCD_UNSUPPORTED_ARCH=arm64"
    ],
    "Cmd": null,
    "Image": "sha256:3cd4c7a04b04c476e23baac9d8b497467f13e5c6f86b16ebda9ae8edbb0186ed",
    "Volumes": null,
    "WorkingDir": "/",
    "Entrypoint": null,
    "OnBuild": null,
    "Labels": null
  },
  "container": "9ed40c528a69f165979a3e257649bfc174f947ac28189577913449b5edfd9e89",
  "container_config": {
    "Hostname": "9ed40c528a69",
    "Domainname": "",
    "User": "",
    "AttachStdin": false,
    "AttachStdout": false,
    "AttachStderr": false,
    "ExposedPorts": {
      "2379/tcp": {},
      "2380/tcp": {},
      "4001/tcp": {},
      "7001/tcp": {}
    },
    "Tty": false,
    "OpenStdin": false,
    "StdinOnce": false,
    "Env": [
      "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
      "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt",
      "ETCD_UNSUPPORTED_ARCH=arm64"
    ],
    "Cmd": [
      "/bin/sh",
      "-c",
      "#(nop) ",
      "ENV ETCD_UNSUPPORTED_ARCH=arm64"
    ],
    "Image": "sha256:3cd4c7a04b04c476e23baac9d8b497467f13e5c6f86b16ebda9ae8edbb0186ed",
    "Volumes": null,
    "WorkingDir": "/",
    "Entrypoint": null,
    "OnBuild": null,
    "Labels": {}
  },
  "created": "2020-08-27T13:54:20.043362298Z",
  "docker_version": "19.03.8",
  ...

note "architecture": "amd64", line

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 15 (8 by maintainers)

Most upvoted comments

added e2e test to catch this as a warning: https://github.com/kubernetes/kubeadm/pull/2397

once https://github.com/kubernetes/kubernetes/issues/98908 is done it can be an error (e.g. for 1.21+ only).

partial logs from the updated test: https://pastebin.com/bS7ug0dS

line of interest is:

WARNING: in config digest …

@BenTheElder Got it. Thanks!

We don’t mutate existing image tags and we don’t tend to backport changes in build tools, but in 1.21 the core components built from source in this repo (kube-proxy, not coredns / etcd) should be built without this error. https://github.com/kubernetes/kubernetes/issues/98908