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

Support major.minor tag in docker images #110014

Closed
Alirexaa opened this issue Jun 20, 2024 · 5 comments
Closed

Support major.minor tag in docker images #110014

Alirexaa opened this issue Jun 20, 2024 · 5 comments
Labels
:Delivery/Packaging RPM and deb packaging, tar and zip archives, shell and batch scripts >enhancement Team:Delivery Meta label for Delivery team

Comments

@Alirexaa
Copy link

Alirexaa commented Jun 20, 2024

Description

In .NET Aspire We try to use major.minor image versions if possible, so we automatically get patch updates without needing to change our code. Right now Elasticsearch image doesn't support this image format.

Is possible to support this image tag format?

dotnet/aspire#4430

@Alirexaa Alirexaa added >enhancement needs:triage Requires assignment of a team area label labels Jun 20, 2024
@gbanasiak gbanasiak added the :Delivery/Packaging RPM and deb packaging, tar and zip archives, shell and batch scripts label Jun 21, 2024
@elasticsearchmachine elasticsearchmachine added Team:Delivery Meta label for Delivery team and removed needs:triage Requires assignment of a team area label labels Jun 21, 2024
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-delivery (Team:Delivery)

@mark-vieira
Copy link
Contributor

Currently we don't do any "dynamic" tagging of our images. @elastic/release-eng I'm sure this topic has come up before, but probably in the context of latest but there is precedent for tags like 8 or 8.15 which would point to the latest for that major or major.minor.

@jmlrt
Copy link
Member

jmlrt commented Jul 3, 2024

Historically, our policy has always been to consider released artifacts as immutable. This means that when you download a file from our website or pull an image with a specific tag from our registry, you should always receive the exact same artifact. This approach is crucial for several reasons:

  • Consistency in Support: Support teams should not have to handle different behaviors from artifacts that are supposed to be identical but come from different commits or builds.
  • Controlled Upgrades: Upgrade operations, even for patch releases, should always occur in a controlled manner, initiated by users. This ensures that nodes of our products do not get automatically upgraded unexpectedly by restarting with different versions from a newer image they pulled.
  • Version Uniformity in Clusters: It is essential that all nodes in a cluster use the exact same version. This prevents situations where a new node might be added and picks up a new version while the existing nodes are still running the older version.

We are always open to discussions and potential changes if they make sense after considering the perspectives of all impacted teams.

@mark-vieira
Copy link
Contributor

Since there are no plans to use such a tagging scheme I'm going to close this issue.

@eerhardt
Copy link

eerhardt commented Jul 3, 2024

or pull an image with a specific tag from our registry, you should always receive the exact same artifact.

I agree that customers should be able to specify an immutable version of the artifact. And that is possible by fully qualifying the image tag name <major>.<minor>.<patch> if you follow semantic versioning. You'd never ship the same patch version more than once. If you needed to make an update, you'd increment the patch number.

But there are a set of customers who want to automatically get security patches without having to change their source code every time a security patch comes out.

elasticsearch is doing just that with its dependency on redhat/ubi/ubi9 here:

# Build args passed to Dockerfile ARGs
args:
BASE_IMAGE: "redhat/ubi/ubi9"
BASE_TAG: "9.3"

Here you are saying "give me the latest 9.3 version" and new versions of 9.3 have been released since #102721 was merged to update to 9.3.

I don't know the best practices around docker tag management, I'm sure everyone has their own opinions. But looking at other well-known docker containers, having tags that float across patches seems to be the norm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Delivery/Packaging RPM and deb packaging, tar and zip archives, shell and batch scripts >enhancement Team:Delivery Meta label for Delivery team
Projects
None yet
Development

No branches or pull requests

6 participants