Skip to content

Commit 9f4c611

Browse files
author
Katie Horne
committed
Edit text
1 parent 1b1cc1d commit 9f4c611

File tree

1 file changed

+50
-52
lines changed

1 file changed

+50
-52
lines changed

images/tags.md

Lines changed: 50 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -8,58 +8,6 @@ target="_blank" rel="noreferrer noopener">Image tags</a> are variants of the
88
original (or base) image. Users can publish new image tags containing updated
99
dependencies and tooling useful for work on the project.
1010

11-
## Image tag lifecycle
12-
13-
Coder uses tags for images to determine which image a user intends create a
14-
workspace from. Examples of tags:
15-
16-
ubuntu:rolling
17-
ubuntu:20.04
18-
codercom/enterprise-node:ubuntu
19-
mycorp/myproject:v1
20-
21-
For the first pair, they both refer to Ubuntu base images however the way each
22-
tag is used is quite different. The `:20.04` tag stays with that release and is
23-
updated with patches and fixes but not typically new functionality. For new
24-
functionality, the `:rolling` tag will move up to `:20.10` and eventually `:21.04`
25-
as the new versions are released.
26-
27-
In Coder, if a workspace is created using a `:20.04` style tag and the supported
28-
software moves on to require `:20.10`, the user will not be alerted. Coder will
29-
inform the developer when patches and updates are available so they can rebuild
30-
the workspace to get rid of the outdated versions. This is good for long-term
31-
support of software that has lengthy version cycles or multiple supported
32-
versions where jumping back to "last year's release" to investigate or hotfix
33-
can be expected.
34-
35-
If the workspace is created from a `:rolling` or `:latest` sort of tag, the
36-
workspace will prompt to be rebuilt for the same patching and security updates
37-
but will also prompt for a rebuild when a major version increase happens. This
38-
may be preferred for support SaaS or mobile apps that update frequently and need
39-
to stay current for everyone.
40-
41-
For the `codercom/enterprise-node:ubuntu` image, the name denotes the company
42-
and software architecture ("node") while the tag specifies the base image.
43-
Without a version, it can be assumed that it will operate like a rolling
44-
tag. It also implies that other flavors such as `:centos` or `:arch` may be
45-
available if users prefer those.
46-
47-
Finally, the `mycorp/myproj:v1` image can help make it clear that the image is
48-
tightly associated with a specific project's major version. The `:v1` tag can
49-
be applied to the most recent build for that image while more specific `:v1.3`
50-
or even `:v1.3.1` tags allow users to summon a very specific tag.
51-
52-
#### Summary
53-
54-
* `latest` will always prompt the user to rebuild whenever the tag is placed
55-
on a new image
56-
* `v1` will prompt the user to rebuild whenever the tag is placed on a new
57-
image but shouldn't move to `v2`
58-
* `ubuntu` or another sort of tag will behave as `latest` but implies the
59-
existence of alternatives
60-
* `v1.3.1` would typically not be added to Coder unless a user needs to go
61-
back to a very specific image from
62-
6311
## Add a tag
6412

6513
To add a tag to Coder:
@@ -92,3 +40,53 @@ To use an existing tag as the default tag, click the **vertical ellipses** for a
9240
tag and select **Make default**.
9341

9442
![Set Existing Tag as Default](../assets/existing-tag-as-default.png)
43+
44+
## Image tag lifecycle
45+
46+
Coder uses image tags to determine which image variant on which the user wants
47+
to base their environment.
48+
49+
Image tags are expressed using the following notation:
50+
51+
```text
52+
<image>:<image-tag>
53+
```
54+
55+
Examples include:
56+
57+
```text
58+
ubuntu:20.04
59+
ubuntu:rolling
60+
codercom/enterprise-node:ubuntu
61+
mycorp/myproject:v1
62+
```
63+
64+
The name formatting of the tag will change the way Coder behaves regarding image
65+
updates:
66+
67+
- If you build your environment using a `ubuntu:rolling` or `ubuntu:latest` tag,
68+
Coder prompts you to rebuild for patches, security updates, and major version
69+
releases. If you're supporting a SaaS product or working on mobile apps, you
70+
may opt for this to ensure that your tools stay up-to-date.
71+
72+
- If you build your environment using a specific version tag (e.g.,
73+
`ubuntu:20.04`), Coder will alert you regarding patches and security updates
74+
so that you rebuild your environment (you won't get these fixes otherwise).
75+
Coder does not, however, alert you regarding minor releases (e.g., movement
76+
from `20.04` to `20.10`). This is a good option for those offering long-term
77+
support of software with lengthier version cycles or those supporting multiple
78+
versions where you expect to revert back to a prior release to investigate and
79+
fix issues.
80+
81+
- If you build your environment using a tag like
82+
`codercom/enterprise-node:ubuntu`, the image name indicates the company and
83+
software architecture (also known as the node), while the tag specifies the
84+
base image. Without any additional information, such as a version number, you
85+
can expect this to operate like a `rolling` or `latest` tag. You can also
86+
assume there are other variants, such as `codercom/enterprise-node:centos` or
87+
`codercom/enterprise-node:arch`.
88+
89+
- If you build your environment using `mycorp/myproject:v1`, the image is
90+
associated with a specific project's major version. You can apply the `:v1`
91+
tag to the most recent build for the image, while you can use `:v1.3` or
92+
`:v1.3.1` to pull a more specific tag version.

0 commit comments

Comments
 (0)