Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

oscontainer tags #201

Closed
cgwalters opened this issue Aug 3, 2018 · 7 comments
Closed

oscontainer tags #201

cgwalters opened this issue Aug 3, 2018 · 7 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.

Comments

@cgwalters
Copy link
Member

cgwalters commented Aug 3, 2018

We should make use of tags; today we just push :latest, and I manually pushed a :alpha tag.

It'd be great to have someone look at automatically tagging :alpha after it passes tests - and also ensuring that once this is done we have corresponding images generated (and hmm....we should probably put the kickstart in the oscontainer too!)

Also, to make things more complex: I think we should defer uploading AMIs until after basic qemu sanity checking. Right now the AMI upload is 20 minutes; we could have run tons of basic qemu tests in that time.

So maybe the flow is e.g.:

treecompose -> :latest
basic sanity tests -> :alpha-sanity -> upload to EC2
Once it's in EC2 we do a lot more extensive testing, maybe of a cluster -> :alpha-cluster-sanity

Promotion from :alpha-cluster-sanity to e.g. :beta would be manual?

Yet another tricky thing in all of this is that we will almost certainly need to (in practice) decouple OS-basics testing from kube-and-above testing.

@cgwalters
Copy link
Member Author

So one thing I learned is that there's no Docker registry API to list untagged images. However, OpenShift "ImageStreams" do maintain this history. So we could base some of our infrastructure on that:

apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
  creationTimestamp: 2018-07-23T19:21:43Z
  generation: 1
  name: os
  namespace: rhcos
  resourceVersion: "38797714"
  selfLink: /apis/image.openshift.io/v1/namespaces/rhcos/imagestreams/os
  uid: a25d7043-8ead-11e8-b23a-42010a8e0004
spec:
  lookupPolicy:
    local: false
status:
  dockerImageRepository: docker-registry.default.svc:5000/rhcos/os
  publicDockerImageRepository: registry.svc.ci.openshift.org/rhcos/os
  tags:
  - items:
    - created: 2018-07-23T21:02:05Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:8d1781ccb9dd9296321857b0b17b9331efddbdc9b64d13b49cf06b90a897796b
      generation: 1
      image: sha256:8d1781ccb9dd9296321857b0b17b9331efddbdc9b64d13b49cf06b90a897796b
    tag: alpha
  - items:
    - created: 2018-08-03T18:21:23Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:01b176f8ff385f48bff5ef4d9e2d741f532130fbff11c61218a387509931eb3d
      generation: 1
      image: sha256:01b176f8ff385f48bff5ef4d9e2d741f532130fbff11c61218a387509931eb3d
    - created: 2018-08-03T14:21:29Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:27738c4c8bf3159bb975ad8176554ca182fc015ce365d1aac5f6ac9cc4e90e30
      generation: 1
      image: sha256:27738c4c8bf3159bb975ad8176554ca182fc015ce365d1aac5f6ac9cc4e90e30
    - created: 2018-08-03T12:50:12Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:dc0f1fd818529feb95a516042b22b492985152a1909d9d48f2cf0ce32a6190d5
      generation: 1
      image: sha256:dc0f1fd818529feb95a516042b22b492985152a1909d9d48f2cf0ce32a6190d5
    - created: 2018-08-03T10:20:22Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:22d80de6d1d99efc47cc45c21aae87131db5263af659a2bdda95f2633dcec554
      generation: 1
      image: sha256:22d80de6d1d99efc47cc45c21aae87131db5263af659a2bdda95f2633dcec554
    - created: 2018-08-03T08:20:41Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:3b7aa97da8a0d2e0c45d2056454d84c9929dd40b3804b5e76c7e362ada3f5f75
      generation: 1
      image: sha256:3b7aa97da8a0d2e0c45d2056454d84c9929dd40b3804b5e76c7e362ada3f5f75
    - created: 2018-08-03T03:50:37Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:a2a89fe6ecd4c216dc467d24342cb38c0c00824cc89618f0f23cb7f21d25c5b8
      generation: 1
      image: sha256:a2a89fe6ecd4c216dc467d24342cb38c0c00824cc89618f0f23cb7f21d25c5b8
    - created: 2018-08-03T01:50:42Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:5007019d6c8c6eb4d3a86fc62fabb6adb8a5acc42adbe518ba44d11d019a7190
      generation: 1
      image: sha256:5007019d6c8c6eb4d3a86fc62fabb6adb8a5acc42adbe518ba44d11d019a7190
    - created: 2018-08-02T23:51:23Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:6d3544a767d119833fa591cca7bbaa1875effb0ab6dda344bfd5f9d92534d1d1
      generation: 1
      image: sha256:6d3544a767d119833fa591cca7bbaa1875effb0ab6dda344bfd5f9d92534d1d1
    - created: 2018-08-02T21:24:17Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:9bb1c005859fbf95dc08b98dab85410155c675e3f5da947647804ccb2ce9c984
      generation: 1
      image: sha256:9bb1c005859fbf95dc08b98dab85410155c675e3f5da947647804ccb2ce9c984
    - created: 2018-08-02T19:24:00Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:b807f7edc850ef1517bd59b850afc183cc6e5ff10db89caaf44354086908ea2a
      generation: 1
      image: sha256:b807f7edc850ef1517bd59b850afc183cc6e5ff10db89caaf44354086908ea2a
    - created: 2018-08-02T16:41:54Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:f1ac4884f3e26bc4108cf8226e39fd632c943af93a8b4581081753d39cf2d936
      generation: 1
      image: sha256:f1ac4884f3e26bc4108cf8226e39fd632c943af93a8b4581081753d39cf2d936
    - created: 2018-08-02T16:05:13Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:770b4c9229e8d4848f89256ad35cfd78cd46ded2bd6454283d4be21dc0b3f77f
      generation: 1
      image: sha256:770b4c9229e8d4848f89256ad35cfd78cd46ded2bd6454283d4be21dc0b3f77f
    - created: 2018-08-02T10:53:09Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:136326fa770e51be96e95e278d51889a441083ab55886e23b4de952e4314e53e
      generation: 1
      image: sha256:136326fa770e51be96e95e278d51889a441083ab55886e23b4de952e4314e53e
    - created: 2018-08-02T05:53:20Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:f90773ba80a655f528d098f6f3b8aaca3adb459c1a9ef202455a367871ce8440
      generation: 1
      image: sha256:f90773ba80a655f528d098f6f3b8aaca3adb459c1a9ef202455a367871ce8440
    - created: 2018-08-02T01:22:35Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:99d313d246fe77c019fe60742bde00bb9f267fdfd433754b4ad6636f21cb580b
      generation: 1
      image: sha256:99d313d246fe77c019fe60742bde00bb9f267fdfd433754b4ad6636f21cb580b
    - created: 2018-08-01T22:28:03Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:490a05d56fea44324db502c3b6bb30a4203046c5bdeb399bdb7894f979a75796
      generation: 1
      image: sha256:490a05d56fea44324db502c3b6bb30a4203046c5bdeb399bdb7894f979a75796
    - created: 2018-08-01T21:53:29Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:76a7221e18171f073bcffba952e503141cce2cb2c05e855aae48b197b945ef14
      generation: 1
      image: sha256:76a7221e18171f073bcffba952e503141cce2cb2c05e855aae48b197b945ef14
    - created: 2018-08-01T20:26:40Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:995dead4e77f300612716cda128292c3381eb1c7aa72dad1c5aafafdd1a06f18
      generation: 1
      image: sha256:995dead4e77f300612716cda128292c3381eb1c7aa72dad1c5aafafdd1a06f18
    - created: 2018-08-01T19:52:53Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:30ac3e7f102c2edef03dc8afbbe56122689fb50a069066618972b5a637bafe87
      generation: 1
      image: sha256:30ac3e7f102c2edef03dc8afbbe56122689fb50a069066618972b5a637bafe87
    - created: 2018-08-01T17:54:34Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:bcbe67f06568535c5292990649f71c93460c6895b3476185dc917211c3adb79b
      generation: 1
      image: sha256:bcbe67f06568535c5292990649f71c93460c6895b3476185dc917211c3adb79b
    - created: 2018-08-01T16:07:39Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:f843ad7d922c53faa205646ca05a8830e2d68e690037437d73fe70038b53fcea
      generation: 1
      image: sha256:f843ad7d922c53faa205646ca05a8830e2d68e690037437d73fe70038b53fcea
    - created: 2018-08-01T15:33:12Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:8831af728c51461310c0f35defd0567ced1087b95c5f417cdc511fac75d04045
      generation: 1
      image: sha256:8831af728c51461310c0f35defd0567ced1087b95c5f417cdc511fac75d04045
    - created: 2018-08-01T14:58:20Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:fea01427d3555ecbfd0005b11a8875be1da4aeee84ad8db1cf5937e4d8c7b6c3
      generation: 1
      image: sha256:fea01427d3555ecbfd0005b11a8875be1da4aeee84ad8db1cf5937e4d8c7b6c3
    - created: 2018-08-01T14:23:59Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:d3d1d547e273b74637d43ce83c1e87984059807fcea5936c6559d79ccc79fcb8
      generation: 1
      image: sha256:d3d1d547e273b74637d43ce83c1e87984059807fcea5936c6559d79ccc79fcb8
    - created: 2018-08-01T12:23:32Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:db87451935c8f7e96b409f5452aceea84f017aa554d15c024caa352787b69ff1
      generation: 1
      image: sha256:db87451935c8f7e96b409f5452aceea84f017aa554d15c024caa352787b69ff1
    - created: 2018-08-01T08:23:56Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:35d2d42db283f16a73f6a633a3072251d8227535fed91838535ec4f5b967c237
      generation: 1
      image: sha256:35d2d42db283f16a73f6a633a3072251d8227535fed91838535ec4f5b967c237
    - created: 2018-08-01T05:52:57Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:71ecd661c8cb7a104503e0110bf4d2566db120ab3e9bf1fb259dd20ddc617210
      generation: 1
      image: sha256:71ecd661c8cb7a104503e0110bf4d2566db120ab3e9bf1fb259dd20ddc617210
    - created: 2018-08-01T04:22:42Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:c80c7557c37e2d024e62b58dbdaecdc27468350bfec4feb7e6baa3b673297bfa
      generation: 1
      image: sha256:c80c7557c37e2d024e62b58dbdaecdc27468350bfec4feb7e6baa3b673297bfa
    - created: 2018-07-31T23:59:32Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:2cb317b2c22f074dce5df8e71fb9c276407c082cb7326005b451cb19fc0658e2
      generation: 1
      image: sha256:2cb317b2c22f074dce5df8e71fb9c276407c082cb7326005b451cb19fc0658e2
    - created: 2018-07-31T22:55:17Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:ab90e603948e153cc1c6406926dc125721d5799d5f21a347d4bb30d4fe43723d
      generation: 1
      image: sha256:ab90e603948e153cc1c6406926dc125721d5799d5f21a347d4bb30d4fe43723d
    - created: 2018-07-31T21:28:42Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:6889cb3ba0b76259431fa6a07da208060495627b6149d482a0d5b0b177571c53
      generation: 1
      image: sha256:6889cb3ba0b76259431fa6a07da208060495627b6149d482a0d5b0b177571c53
    - created: 2018-07-31T20:54:52Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:4b36b1cc033c92707d1625b8d8a12721863efdeab7d29fc71117c4b76af13ebc
      generation: 1
      image: sha256:4b36b1cc033c92707d1625b8d8a12721863efdeab7d29fc71117c4b76af13ebc
    - created: 2018-07-31T19:54:18Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:ea43490f75fc47c4b5b6cb16f81b1d61250d9ef4037c0887127984d269042b5d
      generation: 1
      image: sha256:ea43490f75fc47c4b5b6cb16f81b1d61250d9ef4037c0887127984d269042b5d
    - created: 2018-07-31T18:24:08Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:803c37e0867d8c42dc8e88ce099a7d7cfc0df3f52b752f8d7e36d3bcf495d4c8
      generation: 1
      image: sha256:803c37e0867d8c42dc8e88ce099a7d7cfc0df3f52b752f8d7e36d3bcf495d4c8
    - created: 2018-07-31T16:52:37Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:808542dae1de2f2878a8dafd7671ec3e407e532d7eeba9689bcc018178910dfd
      generation: 1
      image: sha256:808542dae1de2f2878a8dafd7671ec3e407e532d7eeba9689bcc018178910dfd
    - created: 2018-07-31T12:23:30Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:86dca7715c2a340b0c3956bcee6588f799031a361a2a5f0cedd6e3ae7a7bee49
      generation: 1
      image: sha256:86dca7715c2a340b0c3956bcee6588f799031a361a2a5f0cedd6e3ae7a7bee49
    - created: 2018-07-31T10:58:02Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:f417f4b4d574b1e6aa4d2877a18baf0afcb919bbdd842fba25091af340713b62
      generation: 1
      image: sha256:f417f4b4d574b1e6aa4d2877a18baf0afcb919bbdd842fba25091af340713b62
    - created: 2018-07-31T10:24:12Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:48fdde7597ca3222f7751bda4fe45afc690037813c12ff99fc87ff188199312a
      generation: 1
      image: sha256:48fdde7597ca3222f7751bda4fe45afc690037813c12ff99fc87ff188199312a
    - created: 2018-07-31T04:53:46Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:fb33a0182f51359f4f91467c68ed5a060fbfef45515a96dc7364bcd9fcc18251
      generation: 1
      image: sha256:fb33a0182f51359f4f91467c68ed5a060fbfef45515a96dc7364bcd9fcc18251
    - created: 2018-07-31T00:23:30Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:74e5ec109d92d759dd64fe365995e9321cbc12b5a0e5c7622452f2ec346688b9
      generation: 1
      image: sha256:74e5ec109d92d759dd64fe365995e9321cbc12b5a0e5c7622452f2ec346688b9
    - created: 2018-07-30T22:47:30Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:66aa745212d283cb1b63ae295c7623d9fcc1e44a7f1ca759af948931b5e3041e
      generation: 1
      image: sha256:66aa745212d283cb1b63ae295c7623d9fcc1e44a7f1ca759af948931b5e3041e
    - created: 2018-07-30T21:44:14Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:7bfc958666ec959c2ed7e1a90fdce99fa6cce5fae1d4c391681bc5b4aecefb33
      generation: 1
      image: sha256:7bfc958666ec959c2ed7e1a90fdce99fa6cce5fae1d4c391681bc5b4aecefb33
    - created: 2018-07-30T19:55:33Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:3244eda6b508399f3aef17459ebf6d71e583b0075f67c0213dbedf7612ffe169
      generation: 1
      image: sha256:3244eda6b508399f3aef17459ebf6d71e583b0075f67c0213dbedf7612ffe169
    - created: 2018-07-30T19:16:28Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:134a97861321b56d3e93f4d623d16274ae7ff488d534ca4a48e35830272e8aeb
      generation: 1
      image: sha256:134a97861321b56d3e93f4d623d16274ae7ff488d534ca4a48e35830272e8aeb
    - created: 2018-07-30T18:41:39Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:bc1b255912a4e889b41ab82fee15cc0d2ba4678cc095da062845fdcdad391c4d
      generation: 1
      image: sha256:bc1b255912a4e889b41ab82fee15cc0d2ba4678cc095da062845fdcdad391c4d
    - created: 2018-07-30T14:43:31Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:4eb5ff3c5933a1b118c18897d3af26b25984cc5956aaba7b728048eaeda365f0
      generation: 1
      image: sha256:4eb5ff3c5933a1b118c18897d3af26b25984cc5956aaba7b728048eaeda365f0
    - created: 2018-07-23T20:33:45Z
      dockerImageReference: docker-registry.default.svc:5000/rhcos/os@sha256:8d1781ccb9dd9296321857b0b17b9331efddbdc9b64d13b49cf06b90a897796b
      generation: 1
      image: sha256:8d1781ccb9dd9296321857b0b17b9331efddbdc9b64d13b49cf06b90a897796b
    tag: latest

@cgwalters cgwalters added the kind/feature Categorizes issue or PR as related to a new feature. label Aug 6, 2018
@miabbott
Copy link
Member

miabbott commented Aug 6, 2018

To do image promotion on the registry, it appears we'll have to use a method similar to skopeo copy as detailed here: #150 (comment)

I'm thinking we should start pushing rhos/os-maipo to :<version> (or :<commit> or both?), so we could avoid any potential races when copying images.

This would increase the amount of image tags available on the registry, unless we could come up with a pruning mechanism for the image. oc adm prune images appears to operate on a cluster level; I don't think we have that kind of access (nor should we want it).

@miabbott
Copy link
Member

Wanted to migrate a relevant piece of #150 here:

  • An initial proposal for a tagging scheme:
    • buildmaster: freshly built from the pipeline; not tested
    • alpha: image has been successfully sanity tested in AWS; made available to OpenShift
    • stable: image has been successfully tested by OpenShift; requires feedback mechanism from OpenShift

@wking
Copy link
Member

wking commented Oct 3, 2018

With #314 landing rhcos_tag=alpha, can we get these tags (at least the ones we're currently pushing) documented somewhere stable so I can link to them from here? I'd rather not carry my own docs for your tagging scheme, if possible ;).

wking added a commit to wking/openshift-installer that referenced this issue Oct 3, 2018
openshift/os@76b3ae5d (aws-test: Add a rhcos_test=smoketested tag,
2018-09-25, openshift/os#314) started adding rhcos_tag=alpha tags to
tested AMIs.  The likely plan for RHCOS tagging is [1], although they
don't have stable docs for that yet.  With this commit, we allow the
user to specify whichever channel they want, and we search for that
tag.  If they give us nonsense, we'll now hit AWS, see no images in
the nonsense channel, and report that back to the caller.

Users that don't care about release channels and just want to use the
latest image regardless of channel, can set 'channel' to an empty
string.

[1]: openshift/os#201 (comment)
@miabbott
Copy link
Member

miabbott commented Oct 4, 2018

@wking Would a file in this repo (i.e. TAGS.md) suffice?

@wking
Copy link
Member

wking commented Oct 4, 2018

Would a file in this repo (i.e. TAGS.md) suffice?

Anything that actually lands in the repo would be fine. I just want something more authoritative than an issue comment to link to ;).

@openshift-bot
Copy link

Issues go stale after 90d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci-robot openshift-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

No branches or pull requests

7 participants