woodpecker-ci / woodpecker

Woodpecker is a simple, yet powerful CI/CD engine with great extensibility.
https://woodpecker-ci.org
Apache License 2.0
4.07k stars 353 forks source link

Agents: pull all default defined images on start / or new release ? #1508

Closed 6543 closed 1 year ago

6543 commented 1 year ago

so we wont need that https://floss.social/@WoodpeckerCI/109595047113683395 in the future

anbraten commented 1 year ago

We please should use fixed tagging of such images instead as discussed earlier.

6543 commented 1 year ago

it we also pin the patch version ... we would have to release a new woodpecker version just to bump a bugfix ...

pining majour and minor still is usefull as that way we make sure it will exactly as intended with no features/enhancements or even breaking changes added

gapodo commented 1 year ago

I have a question and a thought on this topic...

What is concidered a default defined image? just the git-plugin, all images in the default escalate list,...?

"Forced pulling" is IMHO generally a bad idea...

If it's an "included" (hardcoded) image, the fix should be a new patch release (it's a fix after all).

lafriks commented 1 year ago

@gapodo it's common practice to use docker image versioning schema:

gapodo commented 1 year ago

@gapodo it's common practice to use docker image versioning schema:

  • :2 -> latest 2.x.y version (will change when new minor/patch version change)
  • :2.0 -> latest 2.0.x version (will change when patch version change)
  • :2.0.1 -> specific version (this should never change)

I'm not disputing that this is commonly done (though highly frowned upon by many of the big players in the container field).

My concerns are mostly with "forced" updating (pulling) of images on startup and using floating tags for damage control.

There is a fairly high risk of breakage with even patch releases, as there is no full integation coverage, therefore updating a users system automatically should be considered dangerous / non-optimal.

If a image is hardcoded into the software, changing the image by manipulating the tag (or just pinning to a floating tag) and forcing "hidden" updates isn't the correct solution.

If there is complete trust in not breaking when updating, the version could even just be pinned at the major, as anything within minor and patch should (or if applying semver fully, must) be non breaking.

As someone who pinns his woodpecker to a next- things "just changing" isn't something at leas I would consider good. Also it "kills" the declarative part of the CI setup, if parts within are changing without the users intervention.

lafriks commented 1 year ago

this is just to pin default version, if you have such requirement for it not change you will pin specific version in your pipelines clone image property

6543 commented 1 year ago

Ok we need a clear survay on that and decide on that + document

pin complete (🚀):

Pin majour&minor + pull (🎉 ):

6543 commented 1 year ago

-> complete pinning won by 12/8