testsuite icon indicating copy to clipboard operation
testsuite copied to clipboard

[BUG] prometheus_traffic SHA Mixup

Open EricLo-417 opened this issue 3 years ago • 6 comments

Describe the bug When determining if prometheus is installed, the testsuite first checks if any prometheus is found with the correct sha. The issue with this is, when retagging and pushing that image the sha changes, This causes it to skip prometheus even if the exact image and version is found.

To Reproduce

  1. docker pull quay.io/prometheus/prometheus:v2.35.0
  2. docker inspect --format='{{index .RepoDigests 0}}' quay.io/prometheus/prometheus:v2.35.0
  3. docker tag quay.io/prometheus/prometheus:v2.35.0 localhost:32000/prometheus:v2.35.0
  4. docker push localhost:32000/prometheus:v2.35.0
  5. docker inspect --format='{{index .RepoDigests 0}}' localhost:32000/prometheus

From here you can see the pulled sha is 2acfab1966f0dbecc6afbead13eca7f47062cfe8726bb9db25e39e0c0b88e9c3

but after tag and push it becomes 4b86ad59abc67fa19a6e1618e936f3fd0f6ae13f49260da55a03eeca763a0fb5

Expected behavior Look at the installed Prometheus

Screenshots image

LOGS

I, [2022-07-14 15:08:59 -04:00 #3632585] INFO -- cnf-testsuite: remote_sha_list: [{"name" => "main", "manifest_digest" => "sha256:ebdc21b3b2c506e65cacc3e9572d6405b97d0aca46393534e0b91108c26f5fb0"}, {"name" => "latest", "manifest_digest" => "sha256:56e7f18e05dd567f96c05046519760b356f52450c33f6e0055a110a493a41dc4"}, {"name" => "v2.37.0", "manifest_digest" => "sha256:56e7f18e05dd567f96c05046519760b356f52450c33f6e0055a110a493a41dc4"}, {"name" => "v2.37.0-rc.1", "manifest_digest" => "sha256:1c85614c947fad778bcf50b91ac9c095eced50b661dcd849a5c326959b7d7148"}, {"name" => "v2.37.0-rc.0", "manifest_digest" => "sha256:8153bb82486bfd67ffdd9c4b08de8442fc435061a163610e3f7ae499811ae965"}, {"name" => "v2.36.2", "manifest_digest" => "sha256:df0cd5887887ec393c1934c36c1977b69ef3693611932c3ddeae8b7a412059b9"}, {"name" => "v2.36.1", "manifest_digest" => "sha256:f4c5fa1018a5c15f81250b8122f36f90146d5c2b323f9ec1f41d1b36dc0e7cb9"}, {"name" => "v2.36.0", "manifest_digest" => "sha256:18dfa7c0cabaedbef241ca7cecf2ad56c5a86b10c4f583088f30c37bcef312f4"}, {"name" => "v2.36.0-rc0", "manifest_digest" => "sha256:82c17b13415109c8ce71f202d4a43f605e22077529c273c670d7af3f9ea05e9c"}, {"name" => "v2.35.0", "manifest_digest" => "sha256:2acfab1966f0dbecc6afbead13eca7f47062cfe8726bb9db25e39e0c0b88e9c3"}, {"name" => "v2.35.0-rc1", "manifest_digest" => "sha256:90c8a5e317ca535ff3f96f3d8e169bb26b0259100ac3e32946b9d785e0c6e756"}, {"name" => "v2.35.0-rc0", "manifest_digest" => "sha256:6d771ecbc65574bbd07fd9ba1fd2554bd4a1e41cf50eff04a0f93e63eb5754d0"}, {"name" => "v2.34.0", "manifest_digest" => "sha256:b37103e03399e90c9b7b1b2940894d3634915cf9df4aa2e5402bd85b4377808c"}, {"name" => "v2.34.0-rc.2", "manifest_digest" => "sha256:d9297ead7c4e8885f26be256f97b301877c52516e1784b05453f6e7895109a28"}, {"name" => "v2.34.0-rc.1", "manifest_digest" => "sha256:bb0253da4a40e37f7cd71022fe2a8eaba8ef70c2346535bde41e1e0067ff347b"}, {"name" => "v2.33.5", "manifest_digest" => "sha256:91100b06e86d724d5757e8f5a8920d1e22981067a5acf7eb2f47c3ae62be4ed2"}, {"name" => "v2.34.0-rc.0", "manifest_digest" => "sha256:be100707974bf9104a46e434f47574d224e24588da54845e1bca4836ebaf607f"}, {"name" => "v2.33.4", "manifest_digest" => "sha256:fb7e3a27469dd7e15f3b181cf510954db04b855722be94448dc23494005c433c"}, {"name" => "v2.33.3", "manifest_digest" => "sha256:20c90b9a99b12b4349150e347811cc44dccdb05c291d385320be63dc12cce73b"}, {"name" => "v2.33.2", "manifest_digest" => "sha256:bb5b8b92dee2b6ea0468c3d3ec31ce76bb644ed900e5ae74738fa8522f60d3e0"}, {"name" => "v2.33.1", "manifest_digest" => "sha256:3a75763d209af6ef82aca8fb202a76092a690d25f24d2def7f4eff64e79b7ed9"}, {"name" => "v2.33.0", "manifest_digest" => "sha256:3df0bcb08390d85c2b13d11801a2e53bdbdf3d2ddf8f8e5db740a279a7a85508"}, {"name" => "v2.33.0-rc.1", "manifest_digest" => "sha256:7d538b587655e1466e1c1985fb883a8352225ec5e611163ffe1734004fde98c5"}, {"name" => "v2.33.0-rc.0", "manifest_digest" => "sha256:9ef2593e6e6fa76d3e8a5a35527e91467bb76f2c3322dafc0b0c1d35861aade9"}, {"name" => "v2.32.1", "manifest_digest" => "sha256:cb9817249c346d6cfadebe383ed3b3cd4c540f623db40c4ca00da2ada45259bb"}, {"name" => "v2.32.0", "manifest_digest" => "sha256:68aa603f9d797a8423e766b625cab4202bda7d9be8fc44d4e904dcea7f142177"}, {"name" => "v2.31.2", "manifest_digest" => "sha256:05128da5ddc760fef7760b93da9883611426658b0dd707ee8d7886923487b472"}, {"name" => "v2.30.4", "manifest_digest" => "sha256:2b1306256b6e48ecc2a160b65401f2fc86d6085dc4677350d0739dc7c1fb3c44"}, {"name" => "v2.32.0-rc.1", "manifest_digest" => "sha256:40632d74c1f24b35d61e1c145975a2d4caaa7ad3159c819969f9044e531f061f"}, {"name" => "v2.32.0-rc.0", "manifest_digest" => "sha256:17f94684a6399d303785b42e4393190e6008655ad1e8ff305b77bec9cafbacb9"}, {"name" => "v2.32.0-beta.0", "manifest_digest" => "sha256:312c146b3e0b4f0fe8e3b6c6cfb2ae3926ee603dee72971e644a76526ca5cb96"}, {"name" => "v2.31.1", "manifest_digest" => "sha256:a8779cfe553e0331e9046268e26c539fa39ecf90d59836d828163e65e8f4fa35"}, {"name" => "v2.31.0", "manifest_digest" => "sha256:bad0c4a275e7cf46635fd215676a8d0066f73f577bb11e7de9a9a452f0b5fd97"}, {"name" => "v2.31.0-rc.1", "manifest_digest" => "sha256:b95a7115f778acd90b7c67418293b81f1c246cab19e1074276fff56f5d8d71a9"}, {"name" => "v2.31.0-rc.0", "manifest_digest" => "sha256:5fc11c67874fd9af83d4d10e871fd2e6d174afc13bea5cc25042ea95d2b82c22"}, {"name" => "v2.30.3", "manifest_digest" => "sha256:e9620d250b16ffe0eb9e3eac7dd76151848424c17d577632ae9ca61d1328687e"}, {"name" => "v2.30.2", "manifest_digest" => "sha256:c3f58c653e91a0a9c1c88e217c545b27a706a72e796fb4c463b2a4677940f12a"}, {"name" => "v2.30.1", "manifest_digest" => "sha256:88eee6112f8dff542332c7bfd4a4e8b0312949954e939c8298f084515a48097c"}, {"name" => "v2.30.0", "manifest_digest" => "sha256:58fb03aafb142d58cb03965a63a79e9233180d95ee23ca2a76f081b38d286954"}, {"name" => "v2.30.0-rc.0", "manifest_digest" => "sha256:acb276f6cc1a80377e3e10e04dcaf566d78ed0cba82e0f21f4300d3599f57e3b"}, {"name" => "v2.29.2", "manifest_digest" => "sha256:0205de008ba4fcd6d054d7375fbabcbc5239ee6919a287d89b6a5dc244a1b43e"}, {"name" => "v2.29.1", "manifest_digest" => "sha256:ccc801f38fdac43f0ed3e1b0220777e976828d6558f8ef3baad9028e0d1797ae"}, {"name" => "v2.29.0", "manifest_digest" => "sha256:8de955e47c601b024e05af1f81bc55f2ebfdb4775d49b0acad2575c7ceebb3aa"}, {"name" => "v2.29.0-rc.2", "manifest_digest" => "sha256:64f18d3fd257d0821c51872d283dfda17fb8e60d4221bdd687bbf13c501ada78"}, {"name" => "v2.29.0-rc.1", "manifest_digest" => "sha256:bc590221977a083d98ddedfe8fa4f85f39ab73ca6a7e87080997731cd205b243"}, {"name" => "v2.29.0-rc.0", "manifest_digest" => "sha256:4d9b7d636b67bea5047139fcc8365cb8e2429ab988705f8372f2cfbc2100f905"}, {"name" => "v2.28.1", "manifest_digest" => "sha256:5c030438c1e4c86bdc7428f24ee1ad18476eefdfa8a7f76a8ccc9b74f1970d81"}, {"name" => "v2.28.0", "manifest_digest" => "sha256:d5db4b724a53ec7135df90bdb908e00439522539156df2697d969c5931c673a4"}, {"name" => "v2.28.0-rc.0", "manifest_digest" => "sha256:7e2060cac38ca90a10346a431239106290c3d52c55957e82e2277f44c52ce50a"}, {"name" => "v2.27.1", "manifest_digest" => "sha256:5accb68b56ba452e449a5e552411acaeabbbe0f087acf19a1157ce3dd10a8bed"}, {"name" => "v2.26.1", "manifest_digest" => "sha256:e41817a13100572ef99858213eb6b7fa10d6e722a36e5019fc2dc75603dda842"}, {"name" => "v2.27.0", "manifest_digest" => "sha256:d1a9a86b9a3e60a9ea3cde141bdc936847456acc497e0affe7e288234383efa5"}, {"name" => "v2.27.0-rc.0", "manifest_digest" => "sha256:0dbb289d1f763e4b2d9db8adb3b4a35e36ba7049875fd73bec24cb08a619a285"}, {"name" => "v2.26.0", "manifest_digest" => "sha256:38d40a760569b1c5aec4a36e8a7f11e86299e9191b9233672a5d41296d8fa74e"}, {"name" => "v2.26.0-rc.0", "manifest_digest" => "sha256:d32e7f464223fad38273f93a2176038debcb7bc6ca0a35028bee3d527cb0253d"}, {"name" => "v2.25.2", "manifest_digest" => "sha256:c24ab4ef6187de7e79c4578e6fccb22cb73b8da662987328a828a65410fe6ae9"}, {"name" => "v2.25.1", "manifest_digest" => "sha256:1b4ed7c0e11efb8f68bbc913909d7650a46cb783d84cf541ee5e054925d6173f"}, {"name" => "master", "manifest_digest" => "sha256:981e8cce3b654c9d5bd3784771cb01d4ab54ebf4092c81dc4ecb3756e162c06a"}, {"name" => "v2.25.0", "manifest_digest" => "sha256:fd8b3c4c7ced91cbe96aa8a8dd4d02aa5aff7aefdaf0e579486127745c758c27"}, {"name" => "v2.25.0-rc.0", "manifest_digest" => "sha256:efcaa8d05fa7ccb7dd70a711a7d3efb26f0f821e485b9de9077be709dc4f425c"}, {"name" => "v2.24.1", "manifest_digest" => "sha256:ea420f6cd98e4e43e264a7a2e6e27e8328f47aa32d937e0c6e8e3b30fdefe6eb"}, {"name" => "v2.24.0", "manifest_digest" => "sha256:943c7c57115a449353e0158dcba4eaab2e56de07b7d552b5145cb6c0d1cbab19"}, {"name" => "v2.24.0-rc.0", "manifest_digest" => "sha256:73004531374bc42a62cb834cc54d7a5ed6cd4cb0ce5639c3d8137d30053bd4fa"}, {"name" => "v2.23.0", "manifest_digest" => "sha256:0eac377a90d361be9da35b469def699bcd5bb26eab8a6e9068516a9910717d58"}, {"name" => "v2.23.0-rc.0", "manifest_digest" => "sha256:aa582c8622300edb1ea14d2a8a40f3d9924cdae9334767f04448875ec15fbf67"}, {"name" => "v2.22.2", "manifest_digest" => "sha256:f7ffebdd428ba005e2c65ec1c7debdffdd39c43eb6bd0ddfa64ea7aba2a3fd14"}, {"name" => "v2.22.1", "manifest_digest" => "sha256:b899dbd1b9017b9a379f76ce5b40eead01a62762c4f2057eacef945c3c22d210"}, {"name" => "v2.22.0", "manifest_digest" => "sha256:60190123eb28250f9e013df55b7d58e04e476011911219f5cedac3c73a8b74e6"}, {"name" => "v2.22.0-rc.0", "manifest_digest" => "sha256:96c521a7b51735ee2f675a99711362d291fedcdbfda778f1f236ae9c19f1c7ee"}, {"name" => "v2.21.0", "manifest_digest" => "sha256:d43417c260e516508eed1f1d59c10c49d96bbea93eafb4955b0df3aea5908971"}, {"name" => "v2.21.0-rc.1", "manifest_digest" => "sha256:f6920b4f808d4b8b6d41516c26927f8e4a87a2970f5dadb3adc0ab5e4b06d490"}, {"name" => "v2.21.0-rc.0", "manifest_digest" => "sha256:b5981fc04e2c34fc32551b02210a78c84af5c3bc4da652ade52d5f56c36d50ca"}, {"name" => "v2.20.1", "manifest_digest" => "sha256:788260ebd13613456c168d2eed8290f119f2b6301af2507ff65908d979c66c17"}, {"name" => "v2.19.3", "manifest_digest" => "sha256:8580e76d36a27da031f7164bb3284ad6415ab0a64ae566998d42cbc5a52fa1b0"}, {"name" => "v2.20.0", "manifest_digest" => "sha256:d4ba4dd1a9ebb90916d0bfed3c204adcb118ed24546bf8dd2e6b30fc0fd2009e"}, {"name" => "v2.20.0-rc.1", "manifest_digest" => "sha256:5fa4456107ab10fae167a4b32839754cbbafdb3c24f61210d095f7f824b77800"}, {"name" => "v2.20.0-rc.0", "manifest_digest" => "sha256:ce87608048337b2f00e1969f4ba322dd40271447c14afe8c30bd1238e6d534e9"}, {"name" => "v2.19.2", "manifest_digest" => "sha256:752b7b142e06e5accb97088d9131c5d1495e45ee2eddcd80282b4de6516df697"}, {"name" => "v2.19.1", "manifest_digest" => "sha256:efe62fa8804e9fd2612a945b70c630cc27e21b5fb8233ccc8be4cfbe06d26b04"}, {"name" => "v2.19.0", "manifest_digest" => "sha256:bfad037f95e5e34d595502aa02cac6467b7eadc4b08a601d150844003051fb1b"}, {"name" => "v2.18.2", "manifest_digest" => "sha256:4d3303d1eb424e345cf48969bb7575d4d58472ad783ac41ea07fba92686f7ef5"}, {"name" => "v2.19.0-rc.0", "manifest_digest" => "sha256:401687a9c2107b93b71f88f6bc404b1b44c529a1ec6ffe3a605c788ed9666e5c"}, {"name" => "v2.18.1", "manifest_digest" => "sha256:5880ec936055fad18ccee798d2a63f64ed85bd28e8e0af17c6923a090b686c3d"}, {"name" => "v2.18.0", "manifest_digest" => "sha256:e0737e9c2a5bfe8957a0f340124c9c9d4ec78372902ee56f670d55a3ea73cf4b"}, {"name" => "v2.18.0-rc.1", "manifest_digest" => "sha256:916d17bc116684f80d440cc761ffa688fe9bd6a98df86c8ded74d598c1c4aa6f"}, {"name" => "v2.18.0-rc.0", "manifest_digest" => "sha256:2b98de77cfaad5674f503cd0b235254f4cdf88f90adfe2b7558d2b4ac22509a2"}, {"name" => "v2.17.2", "manifest_digest" => "sha256:42d2395cd7192cac9c787b517c4c276a184e5512da793cce9db8ee626f2cbde1"}, {"name" => "v2.17.1", "manifest_digest" => "sha256:0d05276441fc3ec287025db43190873fd0088d1b16a45a0012a59f4cbd6e5be9"}, {"name" => "v2.17.0", "manifest_digest" => "sha256:2a3fd0d34a6a09a664cf72013a29670a5fa4f9b24e7683fafce89fa4c63d305a"}, {"name" => "v2.17.0-rc.4", "manifest_digest" => "sha256:1236825d0347e9d27ab12d9643a1ee6abcb801dda050293d18ee3f7a5fdc4633"}, {"name" => "v2.17.0-rc.3", "manifest_digest" => "sha256:908fc6eb39a21128100abd3aaf8b8565121e1107e0144ac728cd4131fb40ae13"}, {"name" => "v2.17.0-rc.1", "manifest_digest" => "sha256:07a6a2d6aadf95a6b3b452cd643b6ec4ea66124e6807e58516c445a99ffd448e"}, {"name" => "v2.17.0-rc.0", "manifest_digest" => "sha256:054acb89b61d0fc7a7eb7ee1c1da5ba51db9c1f672d2316a8526f6a92c7fbe8e"}, {"name" => "v2.16.0", "manifest_digest" => "sha256:e4ca62c0d62f3e886e684806dfe9d4e0cda60d54986898173c1083856cfda0f4"}, {"name" => "v2.16.0-rc.1", "manifest_digest" => "sha256:21480647ec721eebdc897caffef95bf34f8a1b0babfbd3f956e316e55075b1a1"}, {"name" => "v2.16.0-rc.0", "manifest_digest" => "sha256:722f45fe02bd0c6d74e0d9f8e1fb58356a5ae459464d5130c9792a659473973a"}, {"name" => "v2.15.2", "manifest_digest" => "sha256:914525123cf76a15a6aaeac069fcb445ce8fb125113d1bc5b15854bc1e8b6353"}, {"name" => "v2.15.1", "manifest_digest" => "sha256:169b743ceb4452266915272f9c3409d36972e41cb52f3f28644e6c0609fc54e6"}, {"name" => "v2.15.0", "manifest_digest" => "sha256:894a9e56e389d37db06bdbac8a1024500dd3a31a3fe7c4a8a1651e184fa8c261"}, {"name" => "v2.15.0-rc.0", "manifest_digest" => "sha256:06be903663baa97698e70d6a29d2375b99828c211c582f2fdb6c93c3285b044f"}] I, [2022-07-14 15:08:59 -04:00 #3632585] INFO -- cnf-testsuite: local_digests: ["docker.io/conformance/cluster-tools@sha256:e015da5f2771d1529af6987f244edb5347ffe393e2fc26eae44affd395cf7bc2", "sha256:bfe3a36ebd2528b454be6aebece806db5b40407b833e2af9617bf39afaff8c16", "sha256:0369cf4303ffdb467dc219990960a9baa8512a54b0ad9283eaf55bd6c0adb934", "sha256:6fb66cd78abfe9e0735a9a751f2586b7984e0d279e87fa8dd175781de6595627", "docker.io/library/import-2022-05-19@sha256:c37ad6940632d8bcbf52df4ce5e8724343b154b0c6a1def65d6f1e2137bdc5d7", "docker.io/library/import-2022-05-19@sha256:8c0e8f18ad72ccc5a2dbb7c0035fccca03a940344c89da11240107ddadc58e41", "docker.io/library/import-2022-05-19@sha256:7962cd2a34ae337f56bc841a5c0cf896ec116a721ca983bbefc302c32cd5c1bb", "docker.io/library/import-2022-05-19@sha256:a0da6981c92f5499921ab1bf71a1faed8366bdffb65816ca9fdd31a2a8d92d2f", "sha256:4c1e997385b8fb4ad4d1d3c7e5af7ff3f882e94d07cf5b78de9e889bc60830e6", "localhost:32000/grafana/promtail@sha256:575daa3096c5cb6576c0ae5801b92109d4852537a0ca1b414ba044098e51b2bc", "localhost:32000/prometheus-operator@sha256:00a499185c862b85351c4a74630bbe95dc544db3afb106573ceb1d7a9fab58ce", "localhost:32000/kube-state-metrics@sha256:b6913dc5904467291b59880dfd306c9079b7d0900452c558f4cd46628cb764c5", "localhost:32000/prometheus-config-reloader@sha256:04785e8dd1bf560c82e541add88ccb78394925e633be4e4dc0f2b35598949171", "localhost:32000/prometheus@sha256:4b86ad59abc67fa19a6e1618e936f3fd0f6ae13f49260da55a03eeca763a0fb5", "localhost:32000/node-exporter@sha256:d5b2a2e2bb07a4a5a7c4bd9e54641cab63e1d2627622dbde17efc04849d3d30d"]

{ "mine": [ "localhost:32000/prometheus@sha256:4b86ad59abc67fa19a6e1618e936f3fd0f6ae13f49260da55a03eeca763a0fb5", ], "remote": [ { "name" => "v2.35.0", "manifest_digest" => "sha256:2acfab1966f0dbecc6afbead13eca7f47062cfe8726bb9db25e39e0c0b88e9c3" } ] }

EricLo-417 avatar Jul 14 '22 19:07 EricLo-417

Thanks for reporting this Eric. We will take a look and post an update.

HashNuke avatar Jul 19 '22 14:07 HashNuke

TIL that re-tagging an image changes the contents of the image, so the SHA of the image does change even if the action is simple as re-tagging and pushing to a local registry.

The solution I could think of here is to provide a configuration in the cnf-testsuite.yml to allow using a custom registry URL to verify image SHAs for third-party tools the testsuite checks for.

Will post more details after exploring.

HashNuke avatar Jul 20 '22 03:07 HashNuke

Sounds good, also not sure but is there a way to check if Prometheus is running without checking image SHAs? For example calling an endpoint that should be up if Prometheus is running? (this could be configured in the cnf-testsuite)

EricLo-417 avatar Jul 20 '22 18:07 EricLo-417

I intended the custom registry option to support anyone using an alternate/mirror registry for any third-party tool we use in the testsuite. But I found out yesterday that registry APIs are non-standard (For example: DockerHub's API is different from GitLab's. So fetching SHAs would have to be different for each API)

Looks like implementing a prometheus url config is the simplest way to go. Might have to do this other third-party tools if required later.

HashNuke avatar Jul 21 '22 04:07 HashNuke

Update: Resolution for this is being handled as a part of Issue-1581 / Issue-1580.

HashNuke avatar Jul 26 '22 02:07 HashNuke

This is pending https://github.com/cncf/cnf-testsuite/issues/1591 and https://github.com/cncf/cnf-testsuite/issues/1581 which are currently "In Progress"

agentpoyo avatar Aug 08 '22 20:08 agentpoyo

AC and Review will be in https://github.com/cncf/cnf-testsuite/issues/1581, no AC required for this one, marking as Reviewer Approved.

agentpoyo avatar Sep 08 '22 14:09 agentpoyo