Skip to content

Commit 2ab4167

Browse files
committed
Merge pull request #58 from aweiteka/bugfix
Update Red Hat vendor documents
2 parents 34e232b + 5d28138 commit 2ab4167

2 files changed

Lines changed: 177 additions & 176 deletions

File tree

vendor/redhat/labels.md

Lines changed: 0 additions & 175 deletions
Original file line numberDiff line numberDiff line change
@@ -111,179 +111,4 @@ $authoritative-source[:PORT]/PRODUCT[$PRODUCTGEN][--$PLATFORMDIFFERENTIATOR]/REP
111111
"distribution-scope":"authoritative-source-only"
112112
},
113113

114-
## Primary Product Images in library/
115-
116-
In *addition*, primary product images for our core products will be created in the `library/` namespace to allow direct pull from `redhat.io/REPO` similar to the existing redirects from Docker. This includes an aggregate rhel repository with multiple majors. Note, this is a simple tag model.
117-
118-
Primary product images are images that for convenience and positioning purposes we want to be able to pull directly from `redhat.io/REPO` and redirected from `docker.io/redhat/REPO` or even `docker.io/REPO`.
119-
120-
Examples:
121-
122-
```
123-
registry.access.redhat.com/rhel:7.0-23
124-
registry.access.redhat.com/rhel:6.5-12
125-
registry.access.redhat.com/rhel7:7.0-23
126-
registry.access.redhat.com/rhel6:6.5-12
127-
registry.access.redhat.com/rhel-tools:7.0-5
128-
```
129-
130-
Primary images are the name-giving core images for official Red Hat products as well as select images that are key for the operation of the containerized platform. Example list:
131-
132-
```
133-
rhel
134-
rhel6
135-
rhel7
136-
rhel-tools
137-
```
138-
139-
The `/redhat` namespace will be set up to redirect to `/library`
140-
141-
One thing to keep in mind is that the `:TAG` part is not regularly used by most users. Only users who very specifically care about using certain versions will use it, or users wanting to find out what exactly they are using in their builds. The vast majority of users will rely on the REPO part of the url before the ':'.
142-
143-
**Note:** The example used above of having a `/rhel` repo, that includes both, rhel7 and rhel6 images is probably not going to work in the current layout of Crane/CDN on the Red Hat registry. So for now `/library/rhel` is simply `rhel7`.
144-
145-
## Latest TAG
146-
147-
The `:latest` tag will always be set to the highest version image in the repository. In cases of multi-major-version repositories this is the newest GA image in the newest major. E.g. `/library/rhel:latest` would point to the newest RHEL 7 image.
148-
149-
## Compatibility TAGs
150-
151-
Until an automatic redirect solution can be implemented, or the approach can be phased out Red Hat will carry a number of additional TAGs for compatibility: `/redhat/*` for the existing redirect from docker.io.
152-
153-
## Beta Releases
154-
155-
Beta releases will be treated as separate 'generations' at the first level. Example:
156-
157-
```
158-
rhel8-beta/rhel:8beta-$IMGBUILD
159-
rhel8-beta/rhel-tools:8beta-$IMGBUILD
160-
rhel8-beta/rsyslog:VERSION-$IMGBUILD
161-
rhel8-beta/php...
162-
...
163-
```
164-
165-
## Bugzilla Mapping
166-
167-
```
168-
REGISTRY/
169-
PRODUCT$PRODUCTGEN[--$PLATFORMDIFFERENTIATOR]/
170-
REPO[$CONTENTGENERATION][--$PLATFORMDIFFERENTIATOR]
171-
:$COMPVER-$IMGBUILD
172-
```
173-
174-
The mapping to Bugzilla (or Jira) components will follow REPO-docker within the respective product. Details as follows:
175-
176-
177-
* `REGISTRY` Ignored in Bugzilla
178-
* `PRODUCT[$PRODUCTGEN]` Maps to the product/version in Bugzilla, other metadata such as
179-
* `REPO[$CONTENTGENERATION][--$PLATFORMDIFFERENTIATOR]`
180-
* `REPO[$CONTENTGENERATION]` maps to the component with -docker appended
181-
* `PLATFORMDIFFERNTIATOR` is not part of the formal mapping
182-
* `:$COMPVER` Maps to the version of the component
183-
* `-$IMGBUILD` is not part of the formal mapping
184-
185-
Examples:
186-
187-
```
188-
registry.access.redhat.com/rhel7/php:5.4.16-3
189-
```
190-
191-
maps to
192-
193-
* Product: RHEL
194-
* Version: 7.0
195-
* Component: php-docker
196-
197-
## ISV Namespaces
198-
199-
### Registries and Repositories
200-
201-
Certified ISV content will live in per-isv registries, federated in the search. The default namespaces is:
202-
203-
```
204-
registry-$ISV.rhcloud.com/library/REPO
205-
```
206-
207-
In the future ISV images may be permitted to be hosted in 3rd party registries, pending agreement on rules for that.
208-
209-
The ISV can add other urls but only the above will be federated in docker pull w/o explicit repository label (see redirect below).
210-
211-
The naming scheme for ISV images should follow the practice established above.
212-
213-
A key point is, that ISV images provided for RHEL must carry a reference to the Red Hat platform in their tag either in the first or second level of the path.
214-
215-
**Option 1**: level1 of the path
216-
217-
```
218-
docker.io/$PRODUCT[$PRODUCTGEN]--$PLATFORMDIFFERENTIATOR/$REPO[$PRODUCTGEN]:$VERSION-$BUILD
219-
```
220-
221-
**Option 2**: level2 of the path
222-
223-
```
224-
docker.io/$ISVUSER/$PRODUCT[$PRODUCTGEN]--$PLATFORMDIFFERENTIATOR:$VERSION-$BUILD
225-
docker.io/library/$PRODUCT[$PRODUCTGEN]--$PLATFORMDIFFERENTIATOR:$VERSION-$BUILD
226-
```
227-
228-
Examples:
229-
230-
**Option 1** is recommended for products with multiple container images for a specific platform. **Option 2** is recommended for ISVs supporting multiple platforms with a single product and few images.
231-
232-
```
233-
docker.io/kollab14--rhel7/kollab:14.0-23
234-
docker.io/10gen/mongo--rhel7:2.4.9-8
235-
docekr.io/mongo--rhel7:2.4.9-8
236-
```
237-
238-
The `PLATFORMDIFFERENTIATOR` may only be at the major release level. E.g. `mongo--rhel7.1:2.4.9-8` would *NOT* be permissable.
239-
240-
The exception to this would be an image built for an advanced life cycle stream such as EUS, that actually is specific to the individual minor release.
241-
242-
Please note, that at this point Red Hat has *no* plans to actually offer any images for advanced life cycle offerings. ISVs would require a special agreement allowing them to do that on their own.
243-
244-
### ISV Metadata
245-
246-
Red Hat uses the LABEL metadata field to provide additional information for images. All LABELs that are not actively used by the ISV must be overwritten with "". The following labels must be set appropriately to pass certification:
247-
248-
* `"name"`
249-
* The primary name of the image (relative path w/o TAG): `PRODUCT[$PRODUCTGEN][--$PLATFORMDIFFERENTIATOR] /REPO[$CONTENTGENERATION][--$PLATFORMDIFFERENTIATOR]`
250-
* `"release"`
251-
* The build of the image, `$IMGBUILD`
252-
* `"vendor"`
253-
* Name of the ISV
254-
* `"version"`
255-
* Version part of the TAG in the primary name.
256-
* `"authoritative-source"`
257-
* The official registry the ISV is publishing the images to.
258-
* `"distribution-scope"`
259-
* Distribution scope for the image
260-
261-
Any vendor specific LABELS, `'com.redhat.*'`, must be blanked out.
262-
263-
## Global Namespaces
264-
265-
Global namespaces will be segmented by the registry name:
266-
267-
```
268-
redhat.io/* (a.k.a. registry.access.redhat.com/*)
269-
registry-$ISV.rhcloud.com/*
270-
docker.io/*
271-
quay.io/*
272-
```
273-
274-
The Red Hat search should explicitly list the registries for images it lists (at this point redhat.io & registry-$ISV.rhcloud.com).
275-
276-
We are in discussions with Docker on how to federate our content into their search.
277-
278-
## V2 Protocol
279-
280-
The work on defining the V2 protocol and repository/image format is ongoing. The naming model is expected to change with the introduction of V2.
281-
282-
## Red Hat Software Collections Containers and Labels
283-
284-
TBA
285-
286-
## Red Hat Middleware Image Naming
287-
288-
TBA
289114

vendor/redhat/names.md

Lines changed: 177 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,4 +134,180 @@ RHEL Server base images. Internal name is rhel-server-docker, external name is j
134134
Examples:
135135

136136
rhel-server-docker -> rhel$MAJOR/rhel:TAG
137-
rhel-tools-docker -> rhel$MAJOR/rhel-tools:TAG
137+
rhel-tools-docker -> rhel$MAJOR/rhel-tools:TAG
138+
139+
## Primary Product Images in library/
140+
141+
In *addition*, primary product images for our core products will be created in the `library/` namespace to allow direct pull from `redhat.io/REPO` similar to the existing redirects from Docker. This includes an aggregate rhel repository with multiple majors. Note, this is a simple tag model.
142+
143+
Primary product images are images that for convenience and positioning purposes we want to be able to pull directly from `redhat.io/REPO` and redirected from `docker.io/redhat/REPO` or even `docker.io/REPO`.
144+
145+
Examples:
146+
147+
```
148+
registry.access.redhat.com/rhel:7.0-23
149+
registry.access.redhat.com/rhel:6.5-12
150+
registry.access.redhat.com/rhel7:7.0-23
151+
registry.access.redhat.com/rhel6:6.5-12
152+
registry.access.redhat.com/rhel-tools:7.0-5
153+
```
154+
155+
Primary images are the name-giving core images for official Red Hat products as well as select images that are key for the operation of the containerized platform. Example list:
156+
157+
```
158+
rhel
159+
rhel6
160+
rhel7
161+
rhel-tools
162+
```
163+
164+
The `/redhat` namespace will be set up to redirect to `/library`
165+
166+
One thing to keep in mind is that the `:TAG` part is not regularly used by most users. Only users who very specifically care about using certain versions will use it, or users wanting to find out what exactly they are using in their builds. The vast majority of users will rely on the REPO part of the url before the ':'.
167+
168+
**Note:** The example used above of having a `/rhel` repo, that includes both, rhel7 and rhel6 images is probably not going to work in the current layout of Crane/CDN on the Red Hat registry. So for now `/library/rhel` is simply `rhel7`.
169+
170+
## Latest TAG
171+
172+
The `:latest` tag will always be set to the highest version image in the repository. In cases of multi-major-version repositories this is the newest GA image in the newest major. E.g. `/library/rhel:latest` would point to the newest RHEL 7 image.
173+
174+
## Compatibility TAGs
175+
176+
Until an automatic redirect solution can be implemented, or the approach can be phased out Red Hat will carry a number of additional TAGs for compatibility: `/redhat/*` for the existing redirect from docker.io.
177+
178+
## Beta Releases
179+
180+
Beta releases will be treated as separate 'generations' at the first level. Example:
181+
182+
```
183+
rhel8-beta/rhel:8beta-$IMGBUILD
184+
rhel8-beta/rhel-tools:8beta-$IMGBUILD
185+
rhel8-beta/rsyslog:VERSION-$IMGBUILD
186+
rhel8-beta/php...
187+
...
188+
```
189+
190+
## Bugzilla Mapping
191+
192+
```
193+
REGISTRY/
194+
PRODUCT$PRODUCTGEN[--$PLATFORMDIFFERENTIATOR]/
195+
REPO[$CONTENTGENERATION][--$PLATFORMDIFFERENTIATOR]
196+
:$COMPVER-$IMGBUILD
197+
```
198+
199+
The mapping to Bugzilla (or Jira) components will follow REPO-docker within the respective product. Details as follows:
200+
201+
202+
* `REGISTRY` Ignored in Bugzilla
203+
* `PRODUCT[$PRODUCTGEN]` Maps to the product/version in Bugzilla, other metadata such as
204+
* `REPO[$CONTENTGENERATION][--$PLATFORMDIFFERENTIATOR]`
205+
* `REPO[$CONTENTGENERATION]` maps to the component with -docker appended
206+
* `PLATFORMDIFFERNTIATOR` is not part of the formal mapping
207+
* `:$COMPVER` Maps to the version of the component
208+
* `-$IMGBUILD` is not part of the formal mapping
209+
210+
Examples:
211+
212+
```
213+
registry.access.redhat.com/rhel7/php:5.4.16-3
214+
```
215+
216+
maps to
217+
218+
* Product: RHEL
219+
* Version: 7.0
220+
* Component: php-docker
221+
222+
## ISV Namespaces
223+
224+
### Registries and Repositories
225+
226+
Certified ISV content will live in per-isv registries, federated in the search. The default namespaces is:
227+
228+
```
229+
registry-$ISV.rhcloud.com/library/REPO
230+
```
231+
232+
In the future ISV images may be permitted to be hosted in 3rd party registries, pending agreement on rules for that.
233+
234+
The ISV can add other urls but only the above will be federated in docker pull w/o explicit repository label (see redirect below).
235+
236+
The naming scheme for ISV images should follow the practice established above.
237+
238+
A key point is, that ISV images provided for RHEL must carry a reference to the Red Hat platform in their tag either in the first or second level of the path.
239+
240+
**Option 1**: level1 of the path
241+
242+
```
243+
docker.io/$PRODUCT[$PRODUCTGEN]--$PLATFORMDIFFERENTIATOR/$REPO[$PRODUCTGEN]:$VERSION-$BUILD
244+
```
245+
246+
**Option 2**: level2 of the path
247+
248+
```
249+
docker.io/$ISVUSER/$PRODUCT[$PRODUCTGEN]--$PLATFORMDIFFERENTIATOR:$VERSION-$BUILD
250+
docker.io/library/$PRODUCT[$PRODUCTGEN]--$PLATFORMDIFFERENTIATOR:$VERSION-$BUILD
251+
```
252+
253+
Examples:
254+
255+
**Option 1** is recommended for products with multiple container images for a specific platform. **Option 2** is recommended for ISVs supporting multiple platforms with a single product and few images.
256+
257+
```
258+
docker.io/kollab14--rhel7/kollab:14.0-23
259+
docker.io/10gen/mongo--rhel7:2.4.9-8
260+
docekr.io/mongo--rhel7:2.4.9-8
261+
```
262+
263+
The `PLATFORMDIFFERENTIATOR` may only be at the major release level. E.g. `mongo--rhel7.1:2.4.9-8` would *NOT* be permissable.
264+
265+
The exception to this would be an image built for an advanced life cycle stream such as EUS, that actually is specific to the individual minor release.
266+
267+
Please note, that at this point Red Hat has *no* plans to actually offer any images for advanced life cycle offerings. ISVs would require a special agreement allowing them to do that on their own.
268+
269+
### ISV Metadata
270+
271+
Red Hat uses the LABEL metadata field to provide additional information for images. All LABELs that are not actively used by the ISV must be overwritten with "". The following labels must be set appropriately to pass certification:
272+
273+
* `"name"`
274+
* The primary name of the image (relative path w/o TAG): `PRODUCT[$PRODUCTGEN][--$PLATFORMDIFFERENTIATOR] /REPO[$CONTENTGENERATION][--$PLATFORMDIFFERENTIATOR]`
275+
* `"release"`
276+
* The build of the image, `$IMGBUILD`
277+
* `"vendor"`
278+
* Name of the ISV
279+
* `"version"`
280+
* Version part of the TAG in the primary name.
281+
* `"authoritative-source"`
282+
* The official registry the ISV is publishing the images to.
283+
* `"distribution-scope"`
284+
* Distribution scope for the image
285+
286+
Any vendor specific LABELS, `'com.redhat.*'`, must be blanked out.
287+
288+
## Global Namespaces
289+
290+
Global namespaces will be segmented by the registry name:
291+
292+
```
293+
redhat.io/* (a.k.a. registry.access.redhat.com/*)
294+
registry-$ISV.rhcloud.com/*
295+
docker.io/*
296+
quay.io/*
297+
```
298+
299+
The Red Hat search should explicitly list the registries for images it lists (at this point redhat.io & registry-$ISV.rhcloud.com).
300+
301+
We are in discussions with Docker on how to federate our content into their search.
302+
303+
## V2 Protocol
304+
305+
The work on defining the V2 protocol and repository/image format is ongoing. The naming model is expected to change with the introduction of V2.
306+
307+
## Red Hat Software Collections Containers and Labels
308+
309+
TBA
310+
311+
## Red Hat Middleware Image Naming
312+
313+
TBA

0 commit comments

Comments
 (0)