diff --git a/api/v1alpha1/nodepool_types.go b/api/v1alpha1/nodepool_types.go index 4346de1d4ef..aa4f0a64a8e 100644 --- a/api/v1alpha1/nodepool_types.go +++ b/api/v1alpha1/nodepool_types.go @@ -5,6 +5,7 @@ import ( ) const ( + NodePoolAMIDiscoveryFailed = "AMIDiscoveryFailed" NodePoolAutoscalingEnabledConditionType = "AutoscalingEnabled" NodePoolAutorepairEnabledConditionType = "AutorepairEnabled" NodePoolAsExpectedConditionReason = "AsExpected" diff --git a/control-plane-operator/releaseinfo/fixtures/4.8-image-references.json b/control-plane-operator/releaseinfo/fixtures/4.8-image-references.json new file mode 100644 index 00000000000..7e40ba58a6e --- /dev/null +++ b/control-plane-operator/releaseinfo/fixtures/4.8-image-references.json @@ -0,0 +1,2405 @@ +{ + "kind": "ImageStream", + "apiVersion": "image.openshift.io/v1", + "metadata": { + "name": "4.8.0-0.ci-2021-05-03-215023", + "creationTimestamp": "2021-05-03T21:50:30Z", + "annotations": { + "release.openshift.io/from-image-stream": "ocp/4.8-2021-05-03-215023" + } + }, + "spec": { + "lookupPolicy": { + "local": false + }, + "tags": [ + { + "name": "aws-cloud-controller-manager", + "annotations": { + "io.openshift.build.commit.id": "23258028fb1492a2290b23af67c4fb99aa768fc7", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cloud-provider-aws" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:2209730f7b459bbf513a0915782578c907915e54f8f5ad3fde571dd377ff90bc" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "aws-ebs-csi-driver", + "annotations": { + "io.openshift.build.commit.id": "7a840754b5a709a26073d45fd894960ee9a42808", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/aws-ebs-csi-driver" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:08202e0176fc98ba0b57472edd26a9741156cb977431e02b3e9beda4be0851c9" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "aws-ebs-csi-driver-operator", + "annotations": { + "io.openshift.build.commit.id": "7a2178aa53dd0c3b48762b6e380b5a81e1bc6e4a", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/aws-ebs-csi-driver-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:1ac200c788c5655c81256cdd9c922b70ad4b8124ae323b6becdf55e9d174c230" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "aws-machine-controllers", + "annotations": { + "io.openshift.build.commit.id": "ec9ced760c3a6817037957f00ca7e5b7aa0c12ed", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-api-provider-aws" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:da2c28829dabd839162b82a81eec1209ef9749d9bbb0e62814e7e5b1eb371c08" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "aws-pod-identity-webhook", + "annotations": { + "io.openshift.build.commit.id": "94c5323af1021a2c1b8342ed9b1cfc9a250e0fc0", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/aws-pod-identity-webhook" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:6776cc72173ce1419ffc3785a1c3312fe43c7afe046498b49acc5887a0b267e6" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "azure-disk-csi-driver", + "annotations": { + "io.openshift.build.commit.id": "d6c528b7cda64012bfb2ca8df371836cf5a641ac", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/azure-disk-csi-driver" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:576a8e42628a25995e7dc67c34cbc0bc5d0c9f1872e900d2901bfe15aede2cb0" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "azure-disk-csi-driver-operator", + "annotations": { + "io.openshift.build.commit.id": "a08d8f0bba44558a37c3de1754c61226a9e5f2f7", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/azure-disk-csi-driver-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:1a4ad243d9cd82bac01b7965b0957696cb201fca12554e632b7d39ff47a09703" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "azure-machine-controllers", + "annotations": { + "io.openshift.build.commit.id": "650c2cf3d76098cae452f9c2882a27aa66b3f7f7", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-api-provider-azure" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:931dc9d52870261454018c5a9c022487a3aa26865373d3c408c3b0605601fea2" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "baremetal-installer", + "annotations": { + "io.openshift.build.commit.id": "6de18f13b07104f4ff6b71f578b379c17148fc72", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/installer" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:58793cd46d0f561724b2b822fdad2fd419a90d0fddb5a9d08f6a786df0aff890" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "baremetal-machine-controllers", + "annotations": { + "io.openshift.build.commit.id": "0e61e5b3c9a5d77a996be6f913f0a86a6d716b26", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-api-provider-baremetal" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:5f00d8a0a76368f0908760f7104d9db01192cae828e3e79e481c94dc419a6eff" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "baremetal-operator", + "annotations": { + "io.openshift.build.commit.id": "d22c5f710cdce4a30f3d8a8457d45ad53dd3f3a2", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/baremetal-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:c2e239c172fc3cdd315f3127f16063dbb43a1c0262cc95010c2c49a308d315e6" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "baremetal-runtimecfg", + "annotations": { + "io.openshift.build.commit.id": "a6e07d164f47e97985df6cfc270b3098bf3b4945", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/baremetal-runtimecfg" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:c0b074a5a689017ae0a759789a2a3b8988cfabf8555422ba2f98599f3b35df17" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cli", + "annotations": { + "io.openshift.build.commit.id": "a765590e1b87b014b9d81f9ea534460d6dff73f2", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/oc" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:ed85237c5637b701478ed75affddb8fc0fdc5eb7da1cab5fbf188e29984118b9" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cli-artifacts", + "annotations": { + "io.openshift.build.commit.id": "a765590e1b87b014b9d81f9ea534460d6dff73f2", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/oc" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:2f62e921b8a0d2bdb19de0d1a4c055653476829e2486de4f02324ae1b01920cc" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cloud-credential-operator", + "annotations": { + "io.openshift.build.commit.id": "98ad0b20bae463d146292548903e48ac4d74a55d", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cloud-credential-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:888a8f1547e3b2fccd7eac78f7d344b6bb443a1e5bf9282014c297e55b88a3fe" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-authentication-operator", + "annotations": { + "io.openshift.build.commit.id": "17d85403b21df72684977cc0e682ab5aef46b990", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-authentication-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:0cbf27d5a4d6fd9d9553276b368756a80ae85997258161e211c7d0d11cec3c39" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-autoscaler", + "annotations": { + "io.openshift.build.commit.id": "bfccf36c307416a3315847faf4fcd1ccfcb1f51e", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/kubernetes-autoscaler" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:bfc84b52b002a3ccf00ae1f90d6b5dd6d175aa7b07b56fabcc048d6a1fdc27e0" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-autoscaler-operator", + "annotations": { + "io.openshift.build.commit.id": "6c36bbd942c09bd88a1dd2fb44c214806925a441", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-autoscaler-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:3c82195fef250ec70743afbfac7f9f16f3ed68c300710fe2de9a1b9682d2ef47" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-baremetal-operator", + "annotations": { + "io.openshift.build.commit.id": "d2e73f0f121318b0351c150723b872dadd748dd4", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-baremetal-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:eb2af56073779a3b5985a63437be03b1d307e9e6e0f74811de26ac9c4f60ed28" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-bootstrap", + "annotations": { + "io.openshift.build.commit.id": "6bded1cf71198b5fb3226a2e9d0f7c1cd3309ee4", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-bootstrap" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:b615711801832e29da1a546a87aa0242248bc7ae648dc3d95658d9ea8209c4d9" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-cloud-controller-manager-operator", + "annotations": { + "io.openshift.build.commit.id": "e4fbd6c5eaf1928183c6ce3260057505b111a3cb", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-cloud-controller-manager-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:72ce1ce6d067070117c01e239cbce1e0b4fd2f481ab43b15457035ea1829a337" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-cloud-controller-manager-operator-src", + "annotations": { + "io.openshift.build.commit.id": "e4fbd6c5eaf1928183c6ce3260057505b111a3cb", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-cloud-controller-manager-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:bf25a7f3ce6c55e3a95bbc3071edc1defa8879c2566b1831084bd32b88e883e2" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-config-operator", + "annotations": { + "io.openshift.build.commit.id": "0f6977c1c5e87264c33a6ef5ba9ba591fb6b8ee9", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-config-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:73e386668a67879bfe01bc4cc9354e418ee215803b627fa76c8b066b07b83c07" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-csi-snapshot-controller-operator", + "annotations": { + "io.openshift.build.commit.id": "f5c228fe55f4c41c99effa682d57c0b9bc5fb927", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-csi-snapshot-controller-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:fa453b717e7e17550671f9186198a0712723a79872257c3749664d7b498d3d7b" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-dns-operator", + "annotations": { + "io.openshift.build.commit.id": "59b2579ed9ce34a61db103d475673f19f34a80be", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-dns-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:29692c95ea24f403bfb9e75416bb946e62ebe7c33b119c72884adf1a2953e430" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-etcd-operator", + "annotations": { + "io.openshift.build.commit.id": "3ced245e91aa8cc2505aa8b5b0a014b70d88ddfa", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-etcd-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:536323e86700a18a66a0e0cd7b5566147d8ceb904e8719b78f94a08b638dfd10" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-image-registry-operator", + "annotations": { + "io.openshift.build.commit.id": "4eab707d8923ba40b5b869d9471c5dd16bd5cacb", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-image-registry-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:b726384d4c53c85f42d0356250b289becf7e95315e2cf2b23ff0453348054d39" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-ingress-operator", + "annotations": { + "io.openshift.build.commit.id": "3f35d0c05831e465d314ef75bd102967a5369545", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-ingress-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:9b64680c8c1559b7706a052ef61b670970cbf6d11b4957bc2a634b9baa059eda" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-kube-apiserver-operator", + "annotations": { + "io.openshift.build.commit.id": "c03c9edf5fddf4e3fb1bc6d7afcd2a2284ca03d8", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-kube-apiserver-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:bfdd8813aeecca8a8bfd0cbc54137c0a7d9d34ea0c939139e691d78c62a5021f" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-kube-controller-manager-operator", + "annotations": { + "io.openshift.build.commit.id": "dc54142035982bc44581936a7e90cdd9ac9ad24e", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-kube-controller-manager-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:03a01d15ac1116976300d4acd79fb1895ef0d85e648aed749b86d0a373a340c1" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-kube-scheduler-operator", + "annotations": { + "io.openshift.build.commit.id": "c5851ddb66f10b18b905a0e8037d8c6e404fa814", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-kube-scheduler-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:0c41e0948ba7ff06c8206ac9dd69eece4955cf95468801ce91f638e863fbc870" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-kube-storage-version-migrator-operator", + "annotations": { + "io.openshift.build.commit.id": "ca60129a46cbdee054b2d047c780190ca271c99f", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-kube-storage-version-migrator-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:ecc699ff7756e014412c02fd869ec18d0a9c134094340717996379b7dbd6ae87" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-machine-approver", + "annotations": { + "io.openshift.build.commit.id": "45e26299163088f3e910e529b13f21c8749a4e6c", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-machine-approver" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:8a1db5dfebed27d2083ccfc535ea683e17106c7fb7be5dd15001db0a7bddf7a6" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-monitoring-operator", + "annotations": { + "io.openshift.build.commit.id": "c57717c4d984e6af27eb28ecc3d96ea9eb9e6869", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-monitoring-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:25ce40b385417a85a963c4226ee31b46473b2245a5ee0a0d9f81ae49da4c578e" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-network-operator", + "annotations": { + "io.openshift.build.commit.id": "d80ee6835ff4f8b8a62d6fca9296aee29026e3f7", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-network-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:707e4f26c9c0cbca8e69309e2bc6c9d3185a638423dd78a523961384756e3c40" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-node-tuning-operator", + "annotations": { + "io.openshift.build.commit.id": "92b1ba3a9a766181c52688a92c5e6c50ece5e11a", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-node-tuning-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:c7e69728ae31c553e173e8c10e06481408761ddf589dcd6a13e063b74fff60f4" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-openshift-apiserver-operator", + "annotations": { + "io.openshift.build.commit.id": "4da70a9e816206146c43bd4de0d6f7655a52d9a0", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-openshift-apiserver-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:37b366c9f33f213361d7c87a7337cfa04d084543f196c6ff9effb805280fd21a" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-openshift-controller-manager-operator", + "annotations": { + "io.openshift.build.commit.id": "d7d1d793aaf88a5d250cc29d4877ec2a829973b3", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-openshift-controller-manager-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:f315ab01cac71c2174e00da785fc7619cc9eefe0fce9b9d9c2294f8b2db84ecb" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-policy-controller", + "annotations": { + "io.openshift.build.commit.id": "ec46ea5ce3735fcb3d10290834f9ae5fb31148f0", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-policy-controller" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:20201c73603d0e3ef298f4dad0c12d5d723b3214f00f965338a0f784c1350850" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-samples-operator", + "annotations": { + "io.openshift.build.commit.id": "dd1e3ca936a25cb6defac7dc3254b0ccbc1724dd", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-samples-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:e04b6fd93c7e74f7fab04de3714957e65e0e4da163235e831918dbdfa4e98389" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-storage-operator", + "annotations": { + "io.openshift.build.commit.id": "b5b79caef4b6e0360dcb0880340649cafd11ed6e", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-storage-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:379dc00c13f074947fadf35c2680c305155be1cae3f34a68db647d762eff176a" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-update-keys", + "annotations": { + "io.openshift.build.commit.id": "e2d50b14c09c36eef9b7451d36327d26a898cab3", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-update-keys" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:aab34815e43969d1fcbfb16769fd803d4bd6bbd3d52bf6673583b05b770cd4b1" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "cluster-version-operator", + "annotations": { + "io.openshift.build.commit.id": "7e7544097149708190903b1f4d088a4529704886", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-version-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:d0af701f965a6f8a3a0ac75ed23fe9f9e474eb34f02656d895ec8e5e9d4e3e98" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "configmap-reloader", + "annotations": { + "io.openshift.build.commit.id": "abc5c26e2e5034639f271a2b4f360b581da2a17d", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/configmap-reload" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:fddaf57192b628dadfc3229424cd3b053a83a652e74ceba842e2d2a3c6af5af4" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "console", + "annotations": { + "io.openshift.build.commit.id": "eb101378458a7e74afc269a629843c80bcf8157a", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/console" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:9ba1c5b5e94458f5e2a8b247f4ba13ef366ef3561edde1d1bd13ca219a86fb55" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "console-operator", + "annotations": { + "io.openshift.build.commit.id": "3284b03c5ad93acce12871a74395aceaa7d05abb", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/console-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:bd53d36c8f3f5827714c4e439cc1cb86f8935ffdd00c4f72b86f6e19948d4088" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "container-networking-plugins", + "annotations": { + "io.openshift.build.commit.id": "a8801b05722b803db020506231f645f93cf36e7d", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/containernetworking-plugins" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:38b897648b9259de23029bffeac981440be48f54c5d1d57f269e4dd549e2c3b9" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "coredns", + "annotations": { + "io.openshift.build.commit.id": "1cc720fdadcaf1666bee8935d597bf4d635eccd8", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/coredns" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:57617715df51c7f4a1faf1cd59bfdc12cd57aea0a611abc4c85cfe57b30b404c" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-driver-manila", + "annotations": { + "io.openshift.build.commit.id": "44dbf2c253772116ed0470136992eba76415efc4", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cloud-provider-openstack" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:63bcbcca07fe29e25aa8f1c1ae9c2043d182c0c848507e04d68734075e66447b" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-driver-manila-operator", + "annotations": { + "io.openshift.build.commit.id": "3f44977ff0021c567e88ba6cd9268c6fe5558b30", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/csi-driver-manila-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:044b919d5ba99a557e9e29260e21ef51fd12adc8612ed5d25e2115b19972a96d" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-driver-nfs", + "annotations": { + "io.openshift.build.commit.id": "9404d343c020fd1806691704f64d930c779ad639", + "io.openshift.build.commit.ref": "release-4.8", + "io.openshift.build.source-location": "https://github.com/openshift/csi-driver-nfs" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:9cf2464d9f98b640ab24b547052f7d4816cb59b5026ce488af1611c16f216332" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-external-attacher", + "annotations": { + "io.openshift.build.commit.id": "13bdf981ab296eca6f1058f590206af67ad2299a", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/csi-external-attacher" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:d8954bff0ab165d7ac7cf8f778b63fa1ec007879b84e2d14ecc89d9c159344c4" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-external-provisioner", + "annotations": { + "io.openshift.build.commit.id": "7725008838c8c63fafeed401872b252f0f26870d", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/csi-external-provisioner" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:8c40eb0ecfc7ef14ac05c94fd9b958af053f087b64b80e2c9f8487d16a79fa97" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-external-resizer", + "annotations": { + "io.openshift.build.commit.id": "5f54908d54df17ae105bb788310cc547c695a0f8", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/csi-external-resizer" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:006be01f9ff885ea4672ba04a3ac7b712c6224cdabecaecb59c8f47912bc4028" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-external-snapshotter", + "annotations": { + "io.openshift.build.commit.id": "f5b16ded5123321aaea08cc05f5caf4c1016eea8", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/csi-external-snapshotter" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:edea4d68aeffe448952776dc476248c44bc87732b3169222b0f1f1771a0d2c0d" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-livenessprobe", + "annotations": { + "io.openshift.build.commit.id": "a29b1153451d6ffa6fbcb1dacbe25639c2523488", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/csi-livenessprobe" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:56dc8909aec314acf099afd16c2c760dffb7920b444dcdc980f6402e2e78f1dc" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-node-driver-registrar", + "annotations": { + "io.openshift.build.commit.id": "0519730f75f89c11f1ee07c7f81b0bcae1ddf705", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/csi-node-driver-registrar" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:2dcc876accbd868f2bd479dc8c3d9fd3441d6476b211e8e59fe9757693485508" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-snapshot-controller", + "annotations": { + "io.openshift.build.commit.id": "f5b16ded5123321aaea08cc05f5caf4c1016eea8", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/csi-external-snapshotter" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:88d196ed054d7426a9dde070c35ff267356253af283ea0629985cd40de1a44d9" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "csi-snapshot-validation-webhook", + "annotations": { + "io.openshift.build.commit.id": "f5b16ded5123321aaea08cc05f5caf4c1016eea8", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/csi-external-snapshotter" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:9a53151c3e64aa0f7d9ca9a82aab2b04b5716b10fd1681aaddc14851535b0923" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "deployer", + "annotations": { + "io.openshift.build.commit.id": "a765590e1b87b014b9d81f9ea534460d6dff73f2", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/oc" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:acbb319d6f36a19bba12eada86d8fbfc884ff85197b9409bab6df4845e3a3c95" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "docker-builder", + "annotations": { + "io.openshift.build.commit.id": "0792d68019fe517392967a9e4263676068ad53c5", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/builder" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:1317f5a8c199e3181ff91abae2b6b2830976c7b8c2f774f6e1944b4857b59547" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "docker-registry", + "annotations": { + "io.openshift.build.commit.id": "1b129a6c313f89e11d97601808ad7bc5b75d6009", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/image-registry" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:03973f2786004aa12498298639b7aa65fa6f7564949f6e53e4f9f2ff878b8d61" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "egress-router-cni", + "annotations": { + "io.openshift.build.commit.id": "a0909e3a357d2f977ffd80d84e0e0e22afc32ae0", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/egress-router-cni" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:a8fb0b68f6a94bd94b08a62280e3c8d92ce06e819e78bbe2174ae2750d7ed14f" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "etcd", + "annotations": { + "io.openshift.build.commit.id": "6a8ba887f2dcfa59e21daef2bc85858b9efeb3ab", + "io.openshift.build.commit.ref": "openshift-4.8", + "io.openshift.build.source-location": "https://github.com/openshift/etcd" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:e50d9a1ed0d48bd7ffc2fec9ba25e9b022fe309947e33725aafad057371a466d" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "gcp-machine-controllers", + "annotations": { + "io.openshift.build.commit.id": "c95aea9fa85e745a07bdbe87b12cd225ab590daf", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-api-provider-gcp" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:40918af7dc2b2ea25ebc619ed6e784c4a2e0a6671491bb883cd4e17ad54a2fff" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "gcp-pd-csi-driver", + "annotations": { + "io.openshift.build.commit.id": "0b618896c6b7c977f96d133060c54ed1b6c87540", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/gcp-pd-csi-driver" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:f1217ccdb907b0fce04ca47fb303e58d6b743e3626dd9bf3ece1b3ba22583d28" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "gcp-pd-csi-driver-operator", + "annotations": { + "io.openshift.build.commit.id": "9e7b2377889169833649482545d1707ab09cd932", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/gcp-pd-csi-driver-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:210a7969abf271c294a262b2d86074b221c32b5c864fb9a2d3c3e44770e90f8a" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "grafana", + "annotations": { + "io.openshift.build.commit.id": "ed1309dd787415ea4b25f68b302f59beece34bda", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/grafana" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:b2ed3453d233ec61eb58cfe1d2613d279b574c087d8c6c668a83853deb868d4a" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "haproxy-router", + "annotations": { + "io.openshift.build.commit.id": "1df7535e452e0b4d8e3eca6457d3fdebafe8361c", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/router" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:a13ba662df46096d8a4a09ef0ef26731a327ab471c8f93f52d1268e6f37817d0" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "hyperkube", + "annotations": { + "io.openshift.build.commit.id": "72ec1232d22cf423733c9db56b957ded56f1f067", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/kubernetes", + "io.openshift.build.version-display-names": "", + "io.openshift.build.versions": "kubernetes=1.21.0-rc.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:e980e7e96ddaeeed26e8bb6b0fda0f377c74810ed2a3fce667ac92e8184cbf91" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "insights-operator", + "annotations": { + "io.openshift.build.commit.id": "68b59e0a6ed7fac55d36a531f9dbd0921b1c9aa7", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/insights-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:1fedf6bda24afd50a0ec639f1a216cce5c834bf2e944b026e1985ddd47a68dcf" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "installer", + "annotations": { + "io.openshift.build.commit.id": "6de18f13b07104f4ff6b71f578b379c17148fc72", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/installer" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:bbe113fbf9c4154d219bf86fdbb53c37865ba3af1ff807e97265ad8c01820645" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "installer-artifacts", + "annotations": { + "io.openshift.build.commit.id": "6de18f13b07104f4ff6b71f578b379c17148fc72", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/installer" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:8eef26eda4ccff98cf2214d6a002fab3fe894cb8319cb2f65307e16f23332b43" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ironic", + "annotations": { + "io.openshift.build.commit.id": "2fa76a273578f482d02e9cf248193d640d15dd92", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/ironic-image" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:6aa36204011cf75f0c30b47945bb3190e40da15abe7f4f1c5dbd0a5a3f06e76d" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ironic-hardware-inventory-recorder", + "annotations": { + "io.openshift.build.commit.id": "61c4cc7dc99601fe32b239be8923a6ed693908b0", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/ironic-hardware-inventory-recorder-image" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:6b64902a5c7a32f5ffefbcd50818a97c8a75501cc5f50dfeebcbf7238a3f8796" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ironic-inspector", + "annotations": { + "io.openshift.build.commit.id": "9aafd074adf6dbc7ee7c2c3150568578e82acc3f", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/ironic-inspector-image" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:fee53ad71e0b642674de866667dbbd8a3ea3cb3d08dc0ab9003694e19c97d7c8" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ironic-ipa-downloader", + "annotations": { + "io.openshift.build.commit.id": "af3b5d867e47c4f1d5253ddb02706e90e399b02f", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/ironic-ipa-downloader" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:902204e1a07fd9ccb31f3a092b7483dac0ac8ac03a1e591f7d1038e9ae85e254" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ironic-machine-os-downloader", + "annotations": { + "io.openshift.build.commit.id": "7e9c9a707c2be75bec5671b006a0cc7ae7fbabc8", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/ironic-rhcos-downloader" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:c8a967aa9abc0b84b8ab7cdd68b5bc9ac2f5683548d833c7dce491ae9f443291" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ironic-static-ip-manager", + "annotations": { + "io.openshift.build.commit.id": "43d640a07582a5aaaa485ea85319bb0721dea251", + "io.openshift.build.commit.ref": "release-4.8", + "io.openshift.build.source-location": "https://github.com/openshift/ironic-static-ip-manager" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:18400fd28f1b696c407d92c88e06a6ea46f6eef43cf91ba4a2f7d70fa7b46879" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "jenkins", + "annotations": { + "io.openshift.build.commit.id": "66633decc2c500ef439f2a6615c4fd4cc48be2a6", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/jenkins" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:4e6699035f0a8f9d8ecb3ab9660641539e469b2a73eb018c7f3ad9a221d3016d" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "jenkins-agent-base", + "annotations": { + "io.openshift.build.commit.id": "66633decc2c500ef439f2a6615c4fd4cc48be2a6", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/jenkins" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:b44e687f54edd789f4ccbca9db9b1dda2ef61e3eb5e803930d7817e33d0aa282" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "jenkins-agent-maven", + "annotations": { + "io.openshift.build.commit.id": "66633decc2c500ef439f2a6615c4fd4cc48be2a6", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/jenkins" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:10200d33a31f79120d56a6bb7ad54ecc8023ea996b673d8b22ec04e1db6fc677" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "jenkins-agent-nodejs", + "annotations": { + "io.openshift.build.commit.id": "66633decc2c500ef439f2a6615c4fd4cc48be2a6", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/jenkins" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:1d091051bedcd911736726f2e8f956ae34ddc30c08abc4a4225632b3bc2f4f49" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "k8s-prometheus-adapter", + "annotations": { + "io.openshift.build.commit.id": "2856bc27f7319c069c02cbc5210852c34ef6e4ef", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/k8s-prometheus-adapter" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:4b71f84dcad8092fe2c0ee7b749ed715e72e22b05720872765fca8a4572cc812" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "keepalived-ipfailover", + "annotations": { + "io.openshift.build.commit.id": "bcab0f7337420343611546aae2634eaf0d36c33e", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/images" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:0b125002ca62de32aaf2f9277a10ae46d883fdd279ce17c62cb75c413aeeb535" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "kube-proxy", + "annotations": { + "io.openshift.build.commit.id": "3da4d510de4c0f3acee6ba4d0bd883bb9c7fdab2", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/sdn" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:051dadf5c4be291d26857438c606aaafbf109f61fe358f474007c3e1fa75a494" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "kube-rbac-proxy", + "annotations": { + "io.openshift.build.commit.id": "8d11a8fa9ce252cd25794c0d9280cbdc0c2affcb", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/kube-rbac-proxy" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:5584994d300418ece9fc5036bd931f560f665c8f77bb5bad27795eb80c6adc20" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "kube-state-metrics", + "annotations": { + "io.openshift.build.commit.id": "10c3d722d8c3010596a7cae64a006d9ff7aaa4a3", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/kube-state-metrics" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:80705bd6dd7982eb667c28df240f555ff5261f9b278366ed7f473e1bb76c57f0" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "kube-storage-version-migrator", + "annotations": { + "io.openshift.build.commit.id": "901a6d221d1cf79b4b6ba859bb43521e0ee635b3", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/kubernetes-kube-storage-version-migrator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:5c88278d00678586f34c63688c4e0997b643dc2d8468862781bd28ecbdc6fccf" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "kubevirt-machine-controllers", + "annotations": { + "io.openshift.build.commit.id": "74587c825a1359f08fef9a007f5c9c86e7b2fe88", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-api-provider-kubevirt" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:4c069740029048a0db5c8d9521a654f188c786f03bf179ab15bbca24748f6b8d" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "kuryr-cni", + "annotations": { + "io.openshift.build.commit.id": "e682f20208f4f7b16f36e58b86abe62d5d0425e3", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/kuryr-kubernetes" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:367f6bce365893ac81bcc4403c6d80bd5281efe84e195aaa48495000f7af6718" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "kuryr-controller", + "annotations": { + "io.openshift.build.commit.id": "e682f20208f4f7b16f36e58b86abe62d5d0425e3", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/kuryr-kubernetes" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:477ac2b6203adcec31736c0690dedc602fb747dc1b250f2b38a6c01d5dbba478" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "libvirt-machine-controllers", + "annotations": { + "io.openshift.build.commit.id": "1a48d4b99ab5a2ce89fa909d12f3256f7489544f", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-api-provider-libvirt" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:a2478efcb6b7a6ccfe1eef31de0ea3306df66b935c013ca988a22aeba05ed2ac" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "local-storage-static-provisioner", + "annotations": { + "io.openshift.build.commit.id": "a05452380aa1e026a63a8401a4e472876a20a0a1", + "io.openshift.build.commit.ref": "release-4.8", + "io.openshift.build.source-location": "https://github.com/openshift/sig-storage-local-static-provisioner" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:0dda3abbb203ea4fd6613ac4dd7d86e3725f8dc7469a3872463d4fdd46d6f577" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "machine-api-operator", + "annotations": { + "io.openshift.build.commit.id": "e461e729a3077016228f34d0db8845b421a91c6d", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/machine-api-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:b2b5c24a80f3964b8b135367a5be5a2861009e0c1c2bad67e998347c429741a9" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "machine-config-operator", + "annotations": { + "io.openshift.build.commit.id": "a391f97a6d0f7cd7deea972fdc5393ecba16affb", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/machine-config-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:51ffa94b8a335fdfce77b8101597712b416173b499ea9a4103b3e23838ebcd40" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "machine-os-content", + "annotations": { + "io.openshift.build.commit.id": "", + "io.openshift.build.commit.ref": "", + "io.openshift.build.source-location": "", + "io.openshift.build.version-display-names": "machine-os=Red Hat Enterprise Linux CoreOS", + "io.openshift.build.versions": "machine-os=48.84.202105022103-0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:f1600c7a4246731489b7c098ea2f6bb4970d73d3efc60b483d6412aafacdf4ae" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "mdns-publisher", + "annotations": { + "io.openshift.build.commit.id": "2c42cc4d95ef276b81cd78d9509e2dc34f3713c1", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/mdns-publisher" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:81c7fe13564375ba00ec62ed43e2426fb052c441d69d85bfe0942cdd5934f8b7" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "multus-admission-controller", + "annotations": { + "io.openshift.build.commit.id": "a7312f5e55e9f34cc8b20f6cbfe1af0f363ca1e6", + "io.openshift.build.commit.ref": "release-4.7", + "io.openshift.build.source-location": "https://github.com/openshift/multus-admission-controller" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:b89a0e5ad4a88213a6a206a6652fbe4d16dd368dfc95053285f438d893e67b57" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "multus-cni", + "annotations": { + "io.openshift.build.commit.id": "4839889c619472ad0ef6868a0eeb2685363ede60", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/multus-cni" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:b1f8ec43a71960587e1405613bf1de6f314af9c893d7a79179c783e389f6a373" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "multus-networkpolicy", + "annotations": { + "io.openshift.build.commit.id": "28f4ceb09df97abccc96ab860a6dd715af2cdcd8", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/multus-networkpolicy" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:7f30ce390c78a834e627ead7d2bd01f4894b93a17ee7b6ba3baa06aafe24b7c5" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "multus-route-override-cni", + "annotations": { + "io.openshift.build.commit.id": "1662c3ec79b880fce5cd9c4e64f5ba0d4daffc00", + "io.openshift.build.commit.ref": "release-4.8", + "io.openshift.build.source-location": "https://github.com/openshift/route-override-cni" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:480638ccd853f844f492ee8fa9eb31b3819911abf8962ee5c7f2ecde10fcc2cd" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "multus-whereabouts-ipam-cni", + "annotations": { + "io.openshift.build.commit.id": "9a05258711b1b459c0b24293a6d8fa77c9e5d852", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/whereabouts-cni" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:506cdb07bdc6a610a09b85e4daa1229b37c998f90ce0398d8829972b2beb170d" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "must-gather", + "annotations": { + "io.openshift.build.commit.id": "cbf587fe6e4c97196e84aea68ad7a57210035e92", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/must-gather" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:009014d623e7d183fe96b8dac3c34ee2aac36e96d3acdbb0e350fd3f9aeae0e5" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "network-metrics-daemon", + "annotations": { + "io.openshift.build.commit.id": "f02c63ae9475d2e51ee1b94b8e341ac8f9d590b7", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/network-metrics-daemon" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:890c78969102ef70bf142785e56d217e12bb0cf220a85b1770eba673e0b45e93" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "oauth-apiserver", + "annotations": { + "io.openshift.build.commit.id": "7423fd05978658842ca56236d315e28a4fa6d40a", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/oauth-apiserver" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:45c8e0494dd5f17d605ff3134bb33f21dd4aca47c67dcb66e3e1347edc8afcdb" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "oauth-proxy", + "annotations": { + "io.openshift.build.commit.id": "4bd4705011c19a7556551c9a1dfaaa5eacc7898c", + "io.openshift.build.commit.ref": "release-4.8", + "io.openshift.build.source-location": "https://github.com/openshift/oauth-proxy" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:ea77dd475d7539bb379bae48a213dd228c1ab8c3494c1f374100543985443f09" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "oauth-server", + "annotations": { + "io.openshift.build.commit.id": "f40542158385122d0d5914b1ff3023c824ea0674", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/oauth-server" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:41adab6f48d3bc2b4d664323a5e1589395f8dfdb7450f9009b7a41da9910ed07" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "openshift-apiserver", + "annotations": { + "io.openshift.build.commit.id": "7657e3536ef66ac92ef4c9b30afceab08f7cd5fa", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/openshift-apiserver" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:918b8905f29bc2b115cd6169ea321ee90182e3af020f94b50d1cf2ad633f7bb1" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "openshift-controller-manager", + "annotations": { + "io.openshift.build.commit.id": "35fb35b2aba891ff30f17373985924db6704329c", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/openshift-controller-manager" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:3cd12f9307f38cf58c1475b052efbb64f5ecad4f20b4ce39e9d5ca80b8f91922" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "openshift-state-metrics", + "annotations": { + "io.openshift.build.commit.id": "101429149266e2c86a41b82baf47a033c9a93b02", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/openshift-state-metrics" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:509593c7ac8f512a36dbddd316bc041dd10ab8ff3b2b4b555b5ede125c74232d" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "openstack-cinder-csi-driver", + "annotations": { + "io.openshift.build.commit.id": "44dbf2c253772116ed0470136992eba76415efc4", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cloud-provider-openstack" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:2e47714654d7936321eeb585f734e7bcec5a775101d4ba5b60f22206fee71e6f" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "openstack-cinder-csi-driver-operator", + "annotations": { + "io.openshift.build.commit.id": "b5a610f9f8e397b8071bdbb8f788f33b99ceea3b", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/openstack-cinder-csi-driver-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:560a1fac618cf52f1ccfae6ed913d34c8cfeb206f9710aa6df9eba9b14e1d2b1" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "openstack-cloud-controller-manager", + "annotations": { + "io.openshift.build.commit.id": "44dbf2c253772116ed0470136992eba76415efc4", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cloud-provider-openstack" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:011b594b05f52bed5f7a60718e44d1792a3736df7bfbda4719e057478902c21f" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "openstack-machine-controllers", + "annotations": { + "io.openshift.build.commit.id": "f17f967e01975ac0142f4d8a8011c9caca8b61d6", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-api-provider-openstack" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:c4fe07065d7a23354f457a7784c46a5f7ff67d612534763596a2ee668b681d3a" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "operator-lifecycle-manager", + "annotations": { + "io.openshift.build.commit.id": "cabb2c9bb32a55f42314ff9cb150fb670412009d", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/operator-framework-olm" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:d37f7890edc149dff5bfb3a47f1fe6dc48bbcad8d42f2fc1bba9be2108da1c9b" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "operator-marketplace", + "annotations": { + "io.openshift.build.commit.id": "f654d66dcea7f9a285dbdc97ccd8f6437cd5a3ad", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/operator-framework/operator-marketplace" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:e5c2e1ce677e9a6f25c4b9a05880bf7829446d65d2acd9315d7f89bbd2456d0f" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "operator-registry", + "annotations": { + "io.openshift.build.commit.id": "cabb2c9bb32a55f42314ff9cb150fb670412009d", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/operator-framework-olm" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:da2df300438ed4c53090bed715211bd27e8aaabdd2749e9856aa1d0ecc6295a3" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ovirt-csi-driver", + "annotations": { + "io.openshift.build.commit.id": "b1d4ec36d194e7dd655e8cfb35229e1bed4c7a14", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/ovirt-csi-driver" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:a6b23e9d931fd8a256f93df0a0463e2e242acedad478383f07a4bf76d79c0073" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ovirt-csi-driver-operator", + "annotations": { + "io.openshift.build.commit.id": "915ffeb38c2fd0afd9d4d136cbfc1ae700180e55", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/ovirt-csi-driver-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:977a8d078dfc2fab3d5717957ba55df5f13831355ba2779398bb672454eebd51" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ovirt-installer", + "annotations": { + "io.openshift.build.commit.id": "6de18f13b07104f4ff6b71f578b379c17148fc72", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/installer" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:ade8e52eca7645aa5e9c000245b3b65c312592ab142749ada4b3ccbb6c5925a1" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ovirt-machine-controllers", + "annotations": { + "io.openshift.build.commit.id": "2ac685fd451c03564072c873ca087b06a0934aab", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/cluster-api-provider-ovirt" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:49cc1016ac4b8f7df374a41104a2fb53ccb9de5a399cabefc63e0cc60dd0211a" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "ovn-kubernetes", + "annotations": { + "io.openshift.build.commit.id": "c6b006ae9a2ac5189602f4b7454ce842632d7b49", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/ovn-kubernetes" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:1c9d5ba084be2abfa79ddc9d2042c25ddf16f8f0ef1c200f0f6fed22d9793623" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "pod", + "annotations": { + "io.openshift.build.commit.id": "bcab0f7337420343611546aae2634eaf0d36c33e", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/images" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:fe086828bcc352853f5c4312bf8ad11ea34488b6ea732fd2961a82724a2223a6" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "prom-label-proxy", + "annotations": { + "io.openshift.build.commit.id": "2faeb4050010914d6b55da38bffb44b95702e052", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/prom-label-proxy" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:30c97178960cc004aaae10337e9ccbe7a1e74367b5ca639da029c1f72a38d821" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "prometheus", + "annotations": { + "io.openshift.build.commit.id": "4fd71d791f3f977d0f3e703d3ac98946a6f9f7df", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/prometheus" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:8b864ada69512fc252c53677026422b18302f6f1f7b4c97d5da5c0354960a691" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "prometheus-alertmanager", + "annotations": { + "io.openshift.build.commit.id": "7b5ac8741d87542c43d002aef3b881d7f8065133", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/prometheus-alertmanager" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:eb341ce18eeee3818048def714930ac6e08838f5342cee42b6ce5cab49938666" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "prometheus-config-reloader", + "annotations": { + "io.openshift.build.commit.id": "2daacbd5d5d06ecff2606783af1eab31b18e78bc", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/prometheus-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:99104f4cc92a185ad518c8d1e73c03c82c8f0ce38ed5c681d952324f95cbc8ef" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "prometheus-node-exporter", + "annotations": { + "io.openshift.build.commit.id": "5146a0e9afd8f200aec667ec6b38c9c12b5ec582", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/node_exporter" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:112de1d3637a1ea2fe396362d6f019730e98ff3272173e506d92c598a0d153df" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "prometheus-operator", + "annotations": { + "io.openshift.build.commit.id": "2daacbd5d5d06ecff2606783af1eab31b18e78bc", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/prometheus-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:d8545e38a516e8c3ade61b3928c7c2d89714da46df734b7397e075ca801a9af8" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "sdn", + "annotations": { + "io.openshift.build.commit.id": "3da4d510de4c0f3acee6ba4d0bd883bb9c7fdab2", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/sdn" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:a5943a5f3763e5484ec9eb005c1e35bc4e29b6693e97f356f7d72305f154a202" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "service-ca-operator", + "annotations": { + "io.openshift.build.commit.id": "5a863191e852e7d36e15c0879351ab0f9560de31", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/service-ca-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:7f04729c8d6cd04c66379a473445fb3f6aeb61df53e981210a136f056fb1b01f" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "telemeter", + "annotations": { + "io.openshift.build.commit.id": "7484569e92fb59bd248d0b51fb446b6222afc1d3", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/telemeter" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:c962a4d1d4c85d65a2f61e363dfd4135fdefdb73d8595d13082a4770b11700a0" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "tests", + "annotations": { + "io.openshift.build.commit.id": "1a10e2fed3a20f09caf1ffdd73b36f5629298143", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/origin" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:7b92e2d81a5dc1378d041f1a03adc4a544f1e6dfbb299c999039125e614af5f3" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "thanos", + "annotations": { + "io.openshift.build.commit.id": "a527e1ca7940485290526790cd886f40ab9bd0b8", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/thanos" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:fcb83a20dec5e8740f800f466db5f94c3499f03f08ff7d2161ec7cc9b0e667e3" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "tools", + "annotations": { + "io.openshift.build.commit.id": "a765590e1b87b014b9d81f9ea534460d6dff73f2", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/oc" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:299fb18d9639cd5b57fdb55c089005c453d5e43fbdd96b9bfcba6933c134b0c8" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "vsphere-csi-driver", + "annotations": { + "io.openshift.build.commit.id": "dd5345eb7ed3c68eff6619ca434b5e83083f5bc9", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/vmware-vsphere-csi-driver" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:86310c3f1c35589e0b1bf371cd307f0c472f93d317b8065c5d4e7b2d7f7d0270" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "vsphere-csi-driver-operator", + "annotations": { + "io.openshift.build.commit.id": "4da1f4fb6b99ebc970e054b0224da0c4a3dd6623", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/vmware-vsphere-csi-driver-operator" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:46f7b2a8813291c9356e9aa8ca1bf0f4136e31253e2d4d0ecf6657486c4e5c18" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "vsphere-csi-driver-syncer", + "annotations": { + "io.openshift.build.commit.id": "dd5345eb7ed3c68eff6619ca434b5e83083f5bc9", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/vmware-vsphere-csi-driver" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:f37d74ea5a6bdfc3a59e6b6887db961119fbdae08cc331688e1511650c001f7a" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + }, + { + "name": "vsphere-problem-detector", + "annotations": { + "io.openshift.build.commit.id": "c32cbf1855ba43d6f223811bf894bf8fd35332a9", + "io.openshift.build.commit.ref": "master", + "io.openshift.build.source-location": "https://github.com/openshift/vsphere-problem-detector" + }, + "from": { + "kind": "DockerImage", + "name": "registry.ci.openshift.org/ocp/4.8-2021-05-03-215023@sha256:f6af056e885fba8612f8000fe8a89b5a802c5a3dcc9a06e12aa38cf30435eaff" + }, + "generation": null, + "importPolicy": {}, + "referencePolicy": { + "type": "" + } + } + ] + }, + "status": { + "dockerImageRepository": "" + } +} \ No newline at end of file diff --git a/control-plane-operator/releaseinfo/fixtures/4.8-installer-coreos-bootimages.yaml b/control-plane-operator/releaseinfo/fixtures/4.8-installer-coreos-bootimages.yaml new file mode 100644 index 00000000000..a2434264bae --- /dev/null +++ b/control-plane-operator/releaseinfo/fixtures/4.8-installer-coreos-bootimages.yaml @@ -0,0 +1,411 @@ +apiVersion: v1 +data: + releaseVersion: 0.0.1-snapshot + stream: | + { + "stream": "rhcos-4.8", + "metadata": { + "last-modified": "2021-04-28T15:26:00Z" + }, + "architectures": { + "ppc64le": { + "artifacts": { + "metal": { + "release": "48.84.202104261624-0", + "formats": { + "4k.raw.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-metal4k.ppc64le.raw.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-metal4k.ppc64le.raw.gz.sig", + "sha256": "6492e139260776ee355ad23e8bd7d4bc657a28eb7e923c0f2264eb6da2766fbb", + "uncompressed-sha256": "24d5b5745d136d99fbfabc01af7de805aaa5642b6b50811da706c0e361e0ace3" + } + }, + "iso": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-live.ppc64le.iso", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-live.ppc64le.iso.sig", + "sha256": "d9e52e41837ec4c4867e2924c395b6efd5852a98cab16b5e45ac28c00075ab65" + } + }, + "pxe": { + "kernel": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-live-kernel-ppc64le", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-live-kernel-ppc64le.sig", + "sha256": "42132ee02867dd6fbe7399cd508d63b6c5631300bc647f830b885b3cd8a68349" + }, + "initramfs": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-live-initramfs.ppc64le.img", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-live-initramfs.ppc64le.img.sig", + "sha256": "b55b17114d0536a60f6ce25b90ceb92f4419ffbc66da95c380a8108f2eeaafad" + }, + "rootfs": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-live-rootfs.ppc64le.img", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-live-rootfs.ppc64le.img.sig", + "sha256": "9b50889cefa7cd7e4f5325e626eb6e1d714812b3aa8235c671ba0a5c0e74f9ba" + } + }, + "raw.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-metal.ppc64le.raw.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-metal.ppc64le.raw.gz.sig", + "sha256": "f6c7679f561e1052cfc4c6efaaf1a26f4799bf5a141f2daadfb2a7059b3544ad", + "uncompressed-sha256": "20037b6387771b8e627c9b3efdaeee8851bd82ee8c3449ef5faac823e552c640" + } + } + } + }, + "openstack": { + "release": "48.84.202104261624-0", + "formats": { + "qcow2.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-openstack.ppc64le.qcow2.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-openstack.ppc64le.qcow2.gz.sig", + "sha256": "7fab159f940844a833d27654ed29ee51e784c2bdcf3848462a773e5425cd007d", + "uncompressed-sha256": "9d8118a7e89e0f5d73c64d6aaeeea98ae733935c65d6f8f18f7f6cb2017362c4" + } + } + } + }, + "qemu": { + "release": "48.84.202104261624-0", + "formats": { + "qcow2.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-qemu.ppc64le.qcow2.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-ppc64le/48.84.202104261624-0/ppc64le/rhcos-48.84.202104261624-0-qemu.ppc64le.qcow2.gz.sig", + "sha256": "f09156bc58ba267cc57453d1367b6c0a0e8d2f403591bc1f4f877ddf7c3fe333", + "uncompressed-sha256": "e96e4304360dbdc1470ed9d28f0520c0005674862542c7be44a7edcad51dc572" + } + } + } + } + }, + "images": {} + }, + "s390x": { + "artifacts": { + "metal": { + "release": "48.84.202104271619-0", + "formats": { + "4k.raw.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-metal4k.s390x.raw.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-metal4k.s390x.raw.gz.sig", + "sha256": "c7af429bff809f6643d2dd679fb0f3a791bcc97d4b4383493c2af732c762fff0", + "uncompressed-sha256": "7b8d40bd796cf9877c5b497b1b18d5b9a81131afb5741ce8c98a29e7e7da9019" + } + }, + "iso": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-live.s390x.iso", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-live.s390x.iso.sig", + "sha256": "dd6b8cfd64e3ad49e52383ca8507059f5aadf2ed4f55fc61da5d0f9a241a343a" + } + }, + "pxe": { + "kernel": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-live-kernel-s390x", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-live-kernel-s390x.sig", + "sha256": "be94bf0e737880bd1c2bc313af930c0d385396e0a63905654bcc0bbe2643f3d2" + }, + "initramfs": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-live-initramfs.s390x.img", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-live-initramfs.s390x.img.sig", + "sha256": "1f9420b313e144e8ae070a1d0e5965b2d5abf744eee1d4fb9b5be380192ae2b7" + }, + "rootfs": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-live-rootfs.s390x.img", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-live-rootfs.s390x.img.sig", + "sha256": "4139101c2bdc515d4f6eeb88a37ee691315d5bb7711d83d7cc7abafe99205fdc" + } + }, + "raw.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-metal.s390x.raw.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-metal.s390x.raw.gz.sig", + "sha256": "de0b853027bdd4ada967379bd806f0a72873e4f6b87e1e8dc71a9e900a485a18", + "uncompressed-sha256": "bcaa7ce86d145a8d07f8e89be4919464600cb0cb3a43d7e35ba9a0a0a440cd6f" + } + } + } + }, + "openstack": { + "release": "48.84.202104271619-0", + "formats": { + "qcow2.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-openstack.s390x.qcow2.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-openstack.s390x.qcow2.gz.sig", + "sha256": "646dc5e88c60d3e9bcbb8dcf85e262e4c0bcd920519ce9051af612a41ff8f631", + "uncompressed-sha256": "75408435cd56171c5cbdd804c30078233909041398608f97af871d30799b8cc3" + } + } + } + }, + "qemu": { + "release": "48.84.202104271619-0", + "formats": { + "qcow2.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-qemu.s390x.qcow2.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8-s390x/48.84.202104271619-0/s390x/rhcos-48.84.202104271619-0-qemu.s390x.qcow2.gz.sig", + "sha256": "baa8581b966230293938f70b5b28fd76139d9c82cf4a9ddcd2cf3f95feaa0680", + "uncompressed-sha256": "116e9e776c4a2e30ba1438f51b250d5a5189b74e3357b8db22f116fff017d5e6" + } + } + } + } + }, + "images": {} + }, + "x86_64": { + "artifacts": { + "aws": { + "release": "48.84.202104271417-0", + "formats": { + "vmdk.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-aws.x86_64.vmdk.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-aws.x86_64.vmdk.gz.sig", + "sha256": "487cdf6cf9accd39603338c2791d9d75b2158b815422661f7c71e7cb3f624e7d", + "uncompressed-sha256": "baf10ab2cc15b574f5d18a5d6e1f46733372ba00700813b814a42152006ad69f" + } + } + } + }, + "azure": { + "release": "48.84.202104271417-0", + "formats": { + "vhd.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-azure.x86_64.vhd.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-azure.x86_64.vhd.gz.sig", + "sha256": "3aeba74d2ab0279c8a9c42b6ad1a8177a78914d4456450ef3a58a5222773e043", + "uncompressed-sha256": "4de96db9bc9b4c41ce5bc51f0fdab241ccf4dcd80c52e8c7b84b3b1486960f69" + } + } + } + }, + "gcp": { + "release": "48.84.202104271417-0", + "formats": { + "tar.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-gcp.x86_64.tar.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-gcp.x86_64.tar.gz.sig", + "sha256": "3b724cebcc728caef98bc34868d4fe0912a2c914191b1c4508a817cc677c905d" + } + } + } + }, + "ibmcloud": { + "release": "48.84.202104271417-0", + "formats": { + "qcow2.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-ibmcloud.x86_64.qcow2.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-ibmcloud.x86_64.qcow2.gz.sig", + "sha256": "7da8206083c2f5b8c7fc6c72fb40f8672adafd6fd9f2bd38143e126279a485bb", + "uncompressed-sha256": "03fe9243488bf12ecc5d9270af8dd69dc915d006984d67d12930d35c6f74b328" + } + } + } + }, + "metal": { + "release": "48.84.202104271417-0", + "formats": { + "4k.raw.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-metal4k.x86_64.raw.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-metal4k.x86_64.raw.gz.sig", + "sha256": "48072ad7baa1e138eb285c806c0c2fbbec197113813cc5d48ab7be2a9061136f", + "uncompressed-sha256": "e5b5ead286451b1c5f6e3938746e9a725a6bf6413eaaf830f86ad46f3f84752c" + } + }, + "iso": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-live.x86_64.iso", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-live.x86_64.iso.sig", + "sha256": "53cf2d33743ac1ac307a7c848130afd2d8ece9c90287e082b26c388072ffc910" + } + }, + "pxe": { + "kernel": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-live-kernel-x86_64", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-live-kernel-x86_64.sig", + "sha256": "ee1e382beff1a32f35ebd4644bb4613e296690ce1c36d24b1bb2218e273274b2" + }, + "initramfs": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-live-initramfs.x86_64.img", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-live-initramfs.x86_64.img.sig", + "sha256": "d4bbf2f6d30619bf1b027e072c318481f7a3bc69c93f4fce615adaf5681a9d7c" + }, + "rootfs": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-live-rootfs.x86_64.img", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-live-rootfs.x86_64.img.sig", + "sha256": "dfabb47722be9cadee5c08dc045a21e2fe9495876d0f04addd51f749c91a07c0" + } + }, + "raw.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-metal.x86_64.raw.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-metal.x86_64.raw.gz.sig", + "sha256": "1e9ae7980c6fb2cd7c7b7877926d318811f5070f8a5777da43f9a3d8977e717d", + "uncompressed-sha256": "fe534a6d263b36da45aff29d560ca9e8a1665bdbddfd1b1066189eb96980f625" + } + } + } + }, + "openstack": { + "release": "48.84.202104271417-0", + "formats": { + "qcow2.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-openstack.x86_64.qcow2.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-openstack.x86_64.qcow2.gz.sig", + "sha256": "bdab49e61715b72c5e937c54a232677cbf821ebcd71aeb3ba58028683cccad07", + "uncompressed-sha256": "ff31c2b4f1a51ef4ab36a0a9423dd15431f9778f8d5cda2721a6a19d8df9aa2f" + } + } + } + }, + "qemu": { + "release": "48.84.202104271417-0", + "formats": { + "qcow2.gz": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-qemu.x86_64.qcow2.gz", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-qemu.x86_64.qcow2.gz.sig", + "sha256": "7b073855c94f0fef43bef1a4a5ee63c0925a63c64765d42a1d1d7595d8647366", + "uncompressed-sha256": "04f36fce364cf54e5cee6994076b14319933d8fb983ca127c7960c95934f17e2" + } + } + } + }, + "vmware": { + "release": "48.84.202104271417-0", + "formats": { + "ova": { + "disk": { + "location": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-vmware.x86_64.ova", + "signature": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.8/48.84.202104271417-0/x86_64/rhcos-48.84.202104271417-0-vmware.x86_64.ova.sig", + "sha256": "01718ad7d557ebf6396cd5bdb9e4049408ab3ca114a4f5eeef66cbae205f5015" + } + } + } + } + }, + "images": { + "aws": { + "regions": { + "af-south-1": { + "release": "48.84.202104271417-0", + "image": "ami-0d900e27af467146b" + }, + "ap-east-1": { + "release": "48.84.202104271417-0", + "image": "ami-04ce7a22e5b7db487" + }, + "ap-northeast-1": { + "release": "48.84.202104271417-0", + "image": "ami-0e17f3ea59669c5aa" + }, + "ap-northeast-2": { + "release": "48.84.202104271417-0", + "image": "ami-097a16a749a789ad7" + }, + "ap-northeast-3": { + "release": "48.84.202104271417-0", + "image": "ami-00b9f45cf617d16d3" + }, + "ap-south-1": { + "release": "48.84.202104271417-0", + "image": "ami-065a7dfe2f6d654b6" + }, + "ap-southeast-1": { + "release": "48.84.202104271417-0", + "image": "ami-099767a15280deaba" + }, + "ap-southeast-2": { + "release": "48.84.202104271417-0", + "image": "ami-05279ea6c72022ebc" + }, + "ca-central-1": { + "release": "48.84.202104271417-0", + "image": "ami-0f19fd857f6354c9e" + }, + "eu-central-1": { + "release": "48.84.202104271417-0", + "image": "ami-04a51e4afa2f0c4f9" + }, + "eu-north-1": { + "release": "48.84.202104271417-0", + "image": "ami-0e76d2ad5cc8d6487" + }, + "eu-south-1": { + "release": "48.84.202104271417-0", + "image": "ami-027219dc7a7022b46" + }, + "eu-west-1": { + "release": "48.84.202104271417-0", + "image": "ami-092fc96ee8ba499fe" + }, + "eu-west-2": { + "release": "48.84.202104271417-0", + "image": "ami-0326391ca5b9f7a15" + }, + "eu-west-3": { + "release": "48.84.202104271417-0", + "image": "ami-059a05f021a08421e" + }, + "me-south-1": { + "release": "48.84.202104271417-0", + "image": "ami-0a29848408d8edfef" + }, + "sa-east-1": { + "release": "48.84.202104271417-0", + "image": "ami-07c8e69e079f92c57" + }, + "us-east-1": { + "release": "48.84.202104271417-0", + "image": "ami-0afb11ab25ba2b81f" + }, + "us-east-2": { + "release": "48.84.202104271417-0", + "image": "ami-0de795e79298fc772" + }, + "us-west-1": { + "release": "48.84.202104271417-0", + "image": "ami-0802d637f32f14e03" + }, + "us-west-2": { + "release": "48.84.202104271417-0", + "image": "ami-00aff842e7221cbfe" + } + } + }, + "gcp": { + "project": "rhcos-cloud", + "name": "rhcos-48-84-202104271417-0-gcp-x86-64" + } + }, + "rhel-coreos-extensions": { + "azure-disk": { + "release": "48.84.202104271417-0", + "url": "https://rhcos.blob.core.windows.net/imagebucket/rhcos-48.84.202104271417-0-azure.x86_64.vhd" + } + } + } + } + } +kind: ConfigMap +metadata: + annotations: + include.release.openshift.io/ibm-cloud-managed: "true" + include.release.openshift.io/self-managed-high-availability: "true" + include.release.openshift.io/single-node-developer: "true" + creationTimestamp: null + name: coreos-bootimages + namespace: openshift-machine-config-operator diff --git a/control-plane-operator/releaseinfo/fixtures/fixtures.go b/control-plane-operator/releaseinfo/fixtures/fixtures.go new file mode 100644 index 00000000000..699c4ce991c --- /dev/null +++ b/control-plane-operator/releaseinfo/fixtures/fixtures.go @@ -0,0 +1,11 @@ +package fixtures + +import ( + _ "embed" +) + +//go:embed 4.8-image-references.json +var ImageReferencesJSON_4_8 []byte + +//go:embed 4.8-installer-coreos-bootimages.yaml +var CoreOSBootImagesYAML_4_8 []byte diff --git a/control-plane-operator/releaseinfo/pod_provider.go b/control-plane-operator/releaseinfo/pod_provider.go index 1ec1f5ac447..71cbcff6c34 100644 --- a/control-plane-operator/releaseinfo/pod_provider.go +++ b/control-plane-operator/releaseinfo/pod_provider.go @@ -1,6 +1,7 @@ package releaseinfo import ( + "bytes" "context" "encoding/json" "fmt" @@ -11,6 +12,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/util/yaml" v1 "k8s.io/client-go/kubernetes/typed/core/v1" ) @@ -21,8 +23,6 @@ var _ Provider = (*PodProvider)(nil) // filesystem assumed to be present at /release-manifests/image-references. type PodProvider struct { Pods v1.PodInterface - - // TODO: consider something like ExpirationCache if performance becomes an issue } func (p *PodProvider) Lookup(ctx context.Context, image string) (releaseImage *ReleaseImage, err error) { @@ -34,10 +34,15 @@ func (p *PodProvider) Lookup(ctx context.Context, image string) (releaseImage *R RestartPolicy: corev1.RestartPolicyNever, Containers: []corev1.Container{ { - Name: "lookup", + Name: "read-image-references", Image: image, Command: []string{"/usr/bin/cat", "/release-manifests/image-references"}, }, + { + Name: "read-coreos-metadata", + Image: image, + Command: []string{"/usr/bin/cat", "/release-manifests/0000_50_installer_coreos-bootimages.yaml"}, + }, }, }, } @@ -73,26 +78,56 @@ func (p *PodProvider) Lookup(ctx context.Context, image string) (releaseImage *R return nil, fmt.Errorf("failed waiting for image lookup pod %q: %w", pod.Name, err) } - // Try and extract the pod's logs - req := p.Pods.GetLogs(pod.Name, &corev1.PodLogOptions{}) + imageStreamData, err := getContainerLogs(ctx, p.Pods, pod.Name, "read-image-references") + if err != nil { + return nil, fmt.Errorf("couldn't lookup image reference metadata: %w", err) + } + osData, err := getContainerLogs(ctx, p.Pods, pod.Name, "read-coreos-metadata") + if err != nil { + return nil, fmt.Errorf("couldn't lookup coreos metadata: %w", err) + } + + var imageStream imageapi.ImageStream + if err := json.Unmarshal(imageStreamData, &imageStream); err != nil { + return nil, fmt.Errorf("couldn't read image lookup pod %q logs as a serialized ImageStream: %w\nraw logs:\n%s", pod.Name, err, string(imageStreamData)) + } + + var coreOSMetaCM corev1.ConfigMap + if err := yaml.NewYAMLOrJSONDecoder(bytes.NewReader(osData), 100).Decode(&coreOSMetaCM); err != nil { + return nil, fmt.Errorf("couldn't read image lookup pod %q logs as a serialized ConfigMap: %w\nraw logs:\n%s", pod.Name, err, string(osData)) + } + + streamData, hasStreamData := coreOSMetaCM.Data["stream"] + if !hasStreamData { + return nil, fmt.Errorf("coreos stream metadata configmap is missing the 'stream' key") + } + var coreOSMeta CoreOSStreamMetadata + if err := json.Unmarshal([]byte(streamData), &coreOSMeta); err != nil { + return nil, fmt.Errorf("couldn't decode stream metadata data: %w\n%s", err, streamData) + } + + releaseImage = &ReleaseImage{ + ImageStream: &imageStream, + StreamMetadata: &coreOSMeta, + } + return +} + +func getContainerLogs(ctx context.Context, pods v1.PodInterface, podName, containerName string) (result []byte, err error) { + req := pods.GetLogs(podName, &corev1.PodLogOptions{Container: containerName}) logs, err := req.Stream(ctx) if err != nil { - return nil, fmt.Errorf("failed to read image lookup pod %q logs: %w", pod.Name, err) + return nil, fmt.Errorf("failed to read logs from %s/%s: %w", podName, containerName, err) } defer func() { - err := logs.Close() - if err != nil { - err = fmt.Errorf("failed to close pod %q log stream: %w", pod.Name, err) + if err := logs.Close(); err != nil { + err = fmt.Errorf("failed to close log stream from %s/%s: %w", podName, containerName, err) } }() - data, err := ioutil.ReadAll(logs) - - // The logs should be a serialized ImageStream resource - var imageStream imageapi.ImageStream - err = json.Unmarshal(data, &imageStream) - if err != nil { - return nil, fmt.Errorf("couldn't read image lookup pod %q logs as a serialized ImageStream: %w\nraw logs:\n%s", pod.Name, err, string(data)) + if data, err := ioutil.ReadAll(logs); err != nil { + err = fmt.Errorf("couldn't decode logs from %s/%s: %w", podName, containerName, err) + } else { + result = data } - releaseImage = &ReleaseImage{ImageStream: &imageStream} return } diff --git a/control-plane-operator/releaseinfo/pod_provider_test.go b/control-plane-operator/releaseinfo/pod_provider_test.go new file mode 100644 index 00000000000..236d50cf599 --- /dev/null +++ b/control-plane-operator/releaseinfo/pod_provider_test.go @@ -0,0 +1,34 @@ +package releaseinfo + +import ( + "bytes" + "encoding/json" + "testing" + + imageapi "github.com/openshift/api/image/v1" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/util/yaml" + + "github.com/openshift/hypershift/control-plane-operator/releaseinfo/fixtures" +) + +func TestDeserialization(t *testing.T) { + var imageStream imageapi.ImageStream + if err := json.Unmarshal(fixtures.ImageReferencesJSON_4_8, &imageStream); err != nil { + t.Fatal(err) + } + + var coreOSMetaCM corev1.ConfigMap + if err := yaml.NewYAMLOrJSONDecoder(bytes.NewReader(fixtures.CoreOSBootImagesYAML_4_8), 100).Decode(&coreOSMetaCM); err != nil { + t.Fatal(err) + } + + streamData, hasStreamData := coreOSMetaCM.Data["stream"] + if !hasStreamData { + t.Fatal("missing stream key") + } + var coreOSMeta CoreOSStreamMetadata + if err := json.Unmarshal([]byte(streamData), &coreOSMeta); err != nil { + t.Fatal(err) + } +} diff --git a/control-plane-operator/releaseinfo/releaseinfo.go b/control-plane-operator/releaseinfo/releaseinfo.go index bb6607ddc32..fd7b72e2a62 100644 --- a/control-plane-operator/releaseinfo/releaseinfo.go +++ b/control-plane-operator/releaseinfo/releaseinfo.go @@ -23,7 +23,44 @@ type Provider interface { // ReleaseImage wraps an ImageStream with some utilities that help the user // discover constituent component image information. type ReleaseImage struct { - *imageapi.ImageStream + *imageapi.ImageStream `json:",inline"` + StreamMetadata *CoreOSStreamMetadata `json:"streamMetadata"` +} + +type CoreOSStreamMetadata struct { + Stream string `json:"stream"` + Architectures map[string]CoreOSArchitecture `json:"architectures"` +} + +type CoreOSArchitecture struct { + // Artifacts is a map of platform name to Artifacts + Artifacts map[string]CoreOSArtifact `json:"artifacts"` + Images CoreOSImages `json:"images"` +} + +type CoreOSArtifact struct { + Release string `json:"release"` + Formats map[string]map[string]CoreOSFormat `json:"formats"` +} + +type CoreOSFormat struct { + Location string `json:"location"` + Signature string `json:"signature"` + SHA256 string `json:"sha256"` + UncompressedSHA256 string `json:"uncompressed-sha256"` +} + +type CoreOSImages struct { + AWS CoreOSAWSImages `json:"aws"` +} + +type CoreOSAWSImages struct { + Regions map[string]CoreOSAWSImage `json:"regions"` +} + +type CoreOSAWSImage struct { + Release string `json:"release"` + Image string `json:"image"` } func (i *ReleaseImage) Version() string { diff --git a/hypershift-operator/controllers/machineimage/interface.go b/hypershift-operator/controllers/machineimage/interface.go deleted file mode 100644 index 07649b6c008..00000000000 --- a/hypershift-operator/controllers/machineimage/interface.go +++ /dev/null @@ -1,8 +0,0 @@ -package machineimage - -import hyperv1 "github.com/openshift/hypershift/api/v1alpha1" - -// ImageProvider provides a cloud image to use for a given HostedCluster -type Provider interface { - Image(cluster *hyperv1.HostedCluster) (string, error) -} diff --git a/hypershift-operator/controllers/machineimage/static/4.7/rhcos-amd64.json b/hypershift-operator/controllers/machineimage/static/4.7/rhcos-amd64.json deleted file mode 100644 index a7c191006a4..00000000000 --- a/hypershift-operator/controllers/machineimage/static/4.7/rhcos-amd64.json +++ /dev/null @@ -1,163 +0,0 @@ -{ - "amis": { - "af-south-1": { - "hvm": "ami-057e5df70c52dc128" - }, - "ap-east-1": { - "hvm": "ami-006ab68917f52bb13" - }, - "ap-northeast-1": { - "hvm": "ami-0d236f6289c700771" - }, - "ap-northeast-2": { - "hvm": "ami-040394572427a293a" - }, - "ap-south-1": { - "hvm": "ami-0838c978c0390dd75" - }, - "ap-southeast-1": { - "hvm": "ami-07af688c8b65de56f" - }, - "ap-southeast-2": { - "hvm": "ami-0a36faab6aa0a0dea" - }, - "ca-central-1": { - "hvm": "ami-01284e5815ce66a95" - }, - "eu-central-1": { - "hvm": "ami-0361c06cf3e935cfe" - }, - "eu-north-1": { - "hvm": "ami-0080eb90a48d9655e" - }, - "eu-south-1": { - "hvm": "ami-0a3bc89f7aadf0343" - }, - "eu-west-1": { - "hvm": "ami-0b4024fa5cb2588bd" - }, - "eu-west-2": { - "hvm": "ami-07376355104ab4106" - }, - "eu-west-3": { - "hvm": "ami-038f4ce9ea7ac7191" - }, - "me-south-1": { - "hvm": "ami-025899013a24bb708" - }, - "sa-east-1": { - "hvm": "ami-089e1a3dcc5a5fe08" - }, - "us-east-1": { - "hvm": "ami-0d5f9982f029fbc14" - }, - "us-east-2": { - "hvm": "ami-0c84b5c5255ec4777" - }, - "us-west-1": { - "hvm": "ami-0b421328859954025" - }, - "us-west-2": { - "hvm": "ami-010de485a2ee23e5e" - } - }, - "azure": { - "image": "rhcos-47.83.202102090044-0-azure.x86_64.vhd", - "url": "https://rhcos.blob.core.windows.net/imagebucket/rhcos-47.83.202102090044-0-azure.x86_64.vhd" - }, - "baseURI": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.7/47.83.202102090044-0/x86_64/", - "buildid": "47.83.202102090044-0", - "gcp": { - "image": "rhcos-47-83-202102090044-0-gcp-x86-64", - "project": "rhcos-cloud", - "url": "https://storage.googleapis.com/rhcos/rhcos/rhcos-47-83-202102090044-0-gcp-x86-64.tar.gz" - }, - "images": { - "aws": { - "path": "rhcos-47.83.202102090044-0-aws.x86_64.vmdk.gz", - "sha256": "ad54945302d9aaf0c5d6a5d1ee457325a3dcd88a68067d18a4d614acef5390d4", - "size": 951239242, - "uncompressed-sha256": "fbb7fbbc6cc6161ffa5c571f1b9022fe80038eea0a7f099c5b18ceba3b82f5eb", - "uncompressed-size": 970902016 - }, - "azure": { - "path": "rhcos-47.83.202102090044-0-azure.x86_64.vhd.gz", - "sha256": "32aa9be04b7f06bfe028fc7c93443f0c742afb006e73b6076016fa897ae5f716", - "size": 951756228, - "uncompressed-sha256": "7e60c02aeebd129a99d65da48beddb99bd29ac7b31f3bb9395fb1d87e6311448", - "uncompressed-size": 17179869696 - }, - "gcp": { - "path": "rhcos-47.83.202102090044-0-gcp.x86_64.tar.gz", - "sha256": "07275bf2844f0dba6296d984d293959f614cc60af9f1be4070142a8cdcc650aa", - "size": 937047583 - }, - "ibmcloud": { - "path": "rhcos-47.83.202102090044-0-ibmcloud.x86_64.qcow2.gz", - "sha256": "b81b26a61d11a9c2c6fb33a94ff124f461907bff550338cfecf173cdd93c09be", - "size": 937381841, - "uncompressed-sha256": "5b6fdfb53e3ede4d264d13862bda6801d932f12e1a17309ac62ac32836bca8ff", - "uncompressed-size": 2360082432 - }, - "live-initramfs": { - "path": "rhcos-47.83.202102090044-0-live-initramfs.x86_64.img", - "sha256": "29ba7e12b16f143a3f036226568ce91b3f7c8bd6feab719a73b0bed1817e4444" - }, - "live-iso": { - "path": "rhcos-47.83.202102090044-0-live.x86_64.iso", - "sha256": "b765a9e99edfa0a91778a4787070c6afcaa198ba8806c8c1533c34a23d63136f" - }, - "live-kernel": { - "path": "rhcos-47.83.202102090044-0-live-kernel-x86_64", - "sha256": "7da6617f6bb7b29c0a8cba002642f2fa23d954874e0d3641e61dd59573563381" - }, - "live-rootfs": { - "path": "rhcos-47.83.202102090044-0-live-rootfs.x86_64.img", - "sha256": "6da4ae110fc2bcea8ac0e6c40fa9d701bbde5b936a1410f75735386c8ea805bf" - }, - "metal": { - "path": "rhcos-47.83.202102090044-0-metal.x86_64.raw.gz", - "sha256": "0a456b02960eeb40a102ef14f5556843c2c504358f3db21f3fe667d8346c9bdf", - "size": 939085053, - "uncompressed-sha256": "36379d083adccccb3de266d2802cfcf5079429865fa010d9b499e87042d46526", - "uncompressed-size": 3717201920 - }, - "metal4k": { - "path": "rhcos-47.83.202102090044-0-metal4k.x86_64.raw.gz", - "sha256": "ff10909c5d4ffbb3a829d070dcf3ce9a8b2d2aebff2924ee464d517eb948bfba", - "size": 936609970, - "uncompressed-sha256": "d5821d7fbd20f86bab29d028855200221f316fa041e86374c5f693da9b5d7b83", - "uncompressed-size": 3717201920 - }, - "openstack": { - "path": "rhcos-47.83.202102090044-0-openstack.x86_64.qcow2.gz", - "sha256": "e5ebb8bcf6d081e52e1e7db0e93ff960ff472e25803a5671170959212e88cad9", - "size": 937380970, - "uncompressed-sha256": "c1b93a426d0f74f0059193439e306f3356b788302a825cfadd870460e543028e", - "uncompressed-size": 2360082432 - }, - "ostree": { - "path": "rhcos-47.83.202102090044-0-ostree.x86_64.tar", - "sha256": "3b5fc040f7493ff7dc5aef4da22077ad74eb2e12a01a9e820d5c116e58716c4f", - "size": 863467520 - }, - "qemu": { - "path": "rhcos-47.83.202102090044-0-qemu.x86_64.qcow2.gz", - "sha256": "2ca82f1d762bba1cb2e5ac1386be0a1ab0264cf88b0594c9cd1e53d285833c6d", - "size": 938521497, - "uncompressed-sha256": "5d31652c7856a87450dce1bbbb561b578ee75443c190096cb977a814e5f35935", - "uncompressed-size": 2394030080 - }, - "vmware": { - "path": "rhcos-47.83.202102090044-0-vmware.x86_64.ova", - "sha256": "13d92692b8eed717ff8d0d113a24add339a65ef1f12eceeb99dabcd922cc86d1", - "size": 970915840 - } - }, - "oscontainer": { - "digest": "sha256:a32077727aa2ef96a1e2371dbcc53ba06f3d9727e836b72be0f0dd4513937e1e", - "image": "quay.io/openshift-release-dev/ocp-v4.0-art-dev" - }, - "ostree-commit": "646a9832dd0dc9fe174a2fc005863a9582186518a5476522a0e9bdccc0e5252a", - "ostree-version": "47.83.202102090044-0" -} \ No newline at end of file diff --git a/hypershift-operator/controllers/machineimage/static/assets.go b/hypershift-operator/controllers/machineimage/static/assets.go deleted file mode 100644 index e8fa9f2820b..00000000000 --- a/hypershift-operator/controllers/machineimage/static/assets.go +++ /dev/null @@ -1,15 +0,0 @@ -package static - -import "embed" - -//go:embed 4.7/* - -var content embed.FS - -func MustAsset(name string) []byte { - b, err := content.ReadFile(name) - if err != nil { - panic(err) - } - return b -} diff --git a/hypershift-operator/controllers/machineimage/static/provider.go b/hypershift-operator/controllers/machineimage/static/provider.go deleted file mode 100644 index 597e2b3589b..00000000000 --- a/hypershift-operator/controllers/machineimage/static/provider.go +++ /dev/null @@ -1,35 +0,0 @@ -package static - -import ( - "encoding/json" - "fmt" - - hyperv1 "github.com/openshift/hypershift/api/v1alpha1" - "github.com/openshift/hypershift/hypershift-operator/controllers/machineimage" -) - -type StaticImageProvider struct { -} - -var _ machineimage.Provider = &StaticImageProvider{} - -type regionImage struct { - HVMImage string `json:"hvm"` -} - -type staticImages struct { - AMIs map[string]regionImage `json:"amis"` -} - -func (p *StaticImageProvider) Image(cluster *hyperv1.HostedCluster) (string, error) { - if cluster.Spec.Platform.AWS == nil { - return "", fmt.Errorf("unsupported platform, only AWS is supported") - } - // TODO: Support other versions, other archs. Currently only 4.7 amd64 is supported. - imageData := MustAsset("4.7/rhcos-amd64.json") - images := &staticImages{} - if err := json.Unmarshal(imageData, images); err != nil { - return "", fmt.Errorf("cannot decode image data: %w", err) - } - return images.AMIs[cluster.Spec.Platform.AWS.Region].HVMImage, nil -} diff --git a/hypershift-operator/controllers/machineimage/static/provider_test.go b/hypershift-operator/controllers/machineimage/static/provider_test.go deleted file mode 100644 index b47b6e460bb..00000000000 --- a/hypershift-operator/controllers/machineimage/static/provider_test.go +++ /dev/null @@ -1,27 +0,0 @@ -package static - -import ( - "testing" - - hyperv1 "github.com/openshift/hypershift/api/v1alpha1" -) - -func TestImage(t *testing.T) { - hc := &hyperv1.HostedCluster{ - Spec: hyperv1.HostedClusterSpec{ - Platform: hyperv1.PlatformSpec{ - AWS: &hyperv1.AWSPlatformSpec{ - Region: "us-east-1", - }, - }, - }, - } - p := &StaticImageProvider{} - image, err := p.Image(hc) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if image != "ami-0d5f9982f029fbc14" { - t.Fatalf("unexpected image: %s", image) - } -} diff --git a/hypershift-operator/controllers/nodepool/nodepool_controller.go b/hypershift-operator/controllers/nodepool/nodepool_controller.go index e55a8f1ac18..27ed16d5dbb 100644 --- a/hypershift-operator/controllers/nodepool/nodepool_controller.go +++ b/hypershift-operator/controllers/nodepool/nodepool_controller.go @@ -11,7 +11,6 @@ import ( hyperv1 "github.com/openshift/hypershift/api/v1alpha1" "github.com/openshift/hypershift/control-plane-operator/releaseinfo" "github.com/openshift/hypershift/hypershift-operator/controllers/machineconfigserver" - "github.com/openshift/hypershift/hypershift-operator/controllers/machineimage" hyperutil "github.com/openshift/hypershift/hypershift-operator/controllers/util" capiv1 "github.com/openshift/hypershift/thirdparty/clusterapi/api/v1alpha4" "github.com/openshift/hypershift/thirdparty/clusterapi/util" @@ -48,7 +47,6 @@ type NodePoolReconciler struct { ctrlclient.Client recorder record.EventRecorder Log logr.Logger - ImageProvider machineimage.Provider ReleaseProvider releaseinfo.Provider } @@ -224,11 +222,26 @@ func (r *NodePoolReconciler) reconcile(ctx context.Context, hcluster *hyperv1.Ho switch nodePool.Spec.Platform.Type { case hyperv1.AWSPlatform: - md := machineDeployment(nodePool, hcluster.Spec.InfraID) - ami, err := r.ImageProvider.Image(hcluster) - if err != nil { - return ctrl.Result{}, fmt.Errorf("failed to obtain AMI: %w", err) + var ami string + switch { + case len(nodePool.Spec.Platform.AWS.AMI) > 0: + ami = nodePool.Spec.Platform.AWS.AMI + default: + defaultAmi, err := defaultNodePoolAMI(hcluster, releaseImage) + if err != nil { + meta.SetStatusCondition(&nodePool.Status.Conditions, metav1.Condition{ + Type: hyperv1.NodePoolAMIDiscoveryFailed, + Status: metav1.ConditionTrue, + Reason: hyperv1.NodePoolValidationFailedConditionReason, + Message: fmt.Sprintf("Couldn't discover an AMI for release image %q: %s", nodePool.Spec.Release.Image, err), + }) + return ctrl.Result{}, fmt.Errorf("couldn't discover an AMI for release image: %w", err) + } + meta.RemoveStatusCondition(&nodePool.Status.Conditions, hyperv1.NodePoolAMIDiscoveryFailed) + ami = defaultAmi } + + md := machineDeployment(nodePool, hcluster.Spec.InfraID) awsMachineTemplate := AWSMachineTemplate(hcluster.Spec.InfraID, ami, nodePool) mhc := machineHealthCheck(nodePool) @@ -320,6 +333,24 @@ func isUpgrading(nodePool *hyperv1.NodePool, targetVersion string) bool { return targetVersion != nodePool.Status.Version } +func defaultNodePoolAMI(hcluster *hyperv1.HostedCluster, releaseImage *releaseinfo.ReleaseImage) (string, error) { + // TODO: The architecture should be specified from the API + arch, foundArch := releaseImage.StreamMetadata.Architectures["x86_64"] + if !foundArch { + return "", fmt.Errorf("couldn't find OS metadata for architecture %q", "x64_64") + } + // TODO: Should the region be included in the NodePool platform information? + region := hcluster.Spec.Platform.AWS.Region + regionData, hasRegionData := arch.Images.AWS.Regions[region] + if !hasRegionData { + return "", fmt.Errorf("couldn't find AWS image for region %q", region) + } + if len(regionData.Image) == 0 { + return "", fmt.Errorf("release image metadata has no image for region %q", region) + } + return regionData.Image, nil +} + // DeploymentComplete considers a deployment to be complete once all of its desired replicas // are updated and available, and no old machines are running. func MachineDeploymentComplete(deployment *capiv1.MachineDeployment) bool { diff --git a/hypershift-operator/main.go b/hypershift-operator/main.go index 21956fe4dcd..e2141bc309b 100644 --- a/hypershift-operator/main.go +++ b/hypershift-operator/main.go @@ -26,7 +26,6 @@ import ( "github.com/openshift/hypershift/hypershift-operator/controllers/externalinfracluster" "github.com/openshift/hypershift/hypershift-operator/controllers/hostedcluster" "github.com/openshift/hypershift/hypershift-operator/controllers/machineconfigserver" - "github.com/openshift/hypershift/hypershift-operator/controllers/machineimage/static" "github.com/openshift/hypershift/hypershift-operator/controllers/nodepool" "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -148,8 +147,7 @@ func NewStartCommand() *cobra.Command { } if err := (&nodepool.NodePoolReconciler{ - Client: mgr.GetClient(), - ImageProvider: &static.StaticImageProvider{}, + Client: mgr.GetClient(), ReleaseProvider: &releaseinfo.CachedProvider{ Inner: &releaseinfo.PodProvider{ Pods: kubeClient.CoreV1().Pods(namespace),