You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The original image update automation design posits a "update job controller" which is used to apply changes to a git repository, and runs independently of the automation itself.
A GitUpdateJob specifies a git repository, a container image, and input parameters for the job. The git update controller arranges for the container to run with a checked-out version of the repository, and to commit and push the changes made, afterward.
There's two motivations for having this extra component:
it creates an opportunity to substitute your own update logic, by specifying a particular image to run as part of the job;
it can be reused for other kinds of automation, since it can do all the git mechanics and otherwise be generic (given a protocol for the image supplied to be run; e.g., the kpt fn run protocol)
A trade-off for git update controller taking on the git-management duties is that other controllers have to do a bit of work to create GitUpdateJob objects and monitor their completion status.
Example spec for a GitUpdateJob (this is the sort of thing the image automation would create to do its work):
spec:
checkout:
gitRepositoryRef:
name: config-repobranch: mainupdate:
image: fluxcd/update-images:v0.0.8functionConfig: # parameters for the container imagekind: ImageUpdatenewImage: helloworld:v1.0.1selector:
matchLabels: { app: hello }commit:
messageTemplate: | This would probably have to be specific to the container image as wellgenerateBranch: image-update- # make a fresh branch using that as the prefixstatus:
result: Completed # | NoChanges | Failedrevision: 38b213e1386f641daa4b3005c70a2977636a6db3branch: image-update-awersdth
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
The original image update automation design posits a "update job controller" which is used to apply changes to a git repository, and runs independently of the automation itself.
A GitUpdateJob specifies a git repository, a container image, and input parameters for the job. The git update controller arranges for the container to run with a checked-out version of the repository, and to commit and push the changes made, afterward.
There's two motivations for having this extra component:
kpt fn run
protocol)A trade-off for git update controller taking on the git-management duties is that other controllers have to do a bit of work to create GitUpdateJob objects and monitor their completion status.
Example spec for a GitUpdateJob (this is the sort of thing the image automation would create to do its work):
Beta Was this translation helpful? Give feedback.
All reactions