0.11.0
Fixed:
- getting secrets when registry address has port #279, thanks @stickycode
- Helm chart updates, thanks @The-Loeki
- Helm provider now has matchTag just like k8s provider: #264
Added:
New features introduced regarding how we do policies #252 #223.
Basically, policy is now an interface:
type Policy interface {
ShouldUpdate(current, new string) (bool, error)
Name() string
Type() PolicyType
}
Kubernetes and Helm providers were refactored into a relatively small implementations of this policy interface. For example unversioned updates (force) becomes a file with less than 20 lines of code.
Additionally, I am adding two new policies:
- Glob - based on https://github.com/ryanuber/go-glob library, provides easy to use matching, such as:
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: wd
namespace: default
labels:
name: "wd"
keel.sh/policy: "glob:build-*" # <- build-1, build-2, build-foo will match this.
- Regexp - well, regexp based matcher, for example
keel.sh/policy = regexp:^([a-zA-Z]+)$
As a user, do I have to change anything?
Not as far as I know, existing policies (patch, minor, major, all, force) were ported to the new design as is and should just continue to work.
Policy "all" now behaves differently from "major"
Since all
policy was doing the same as major, we will be slightly empowering it, however it's still strictly semver policy:
1.4.5-rc1 -> 1.4.5-rc2
- will update
1.4.5-rc2 -> 1.4.5-rc1
- will not update
1.4.5-rc1 -> 1.4.5
- will update
Little change to polling trigger
Since the introduction of polling trigger, we had some code to skip updates with force
policy. This was required for a scenario where multiple tags of the same image were watched by multiple deployments (for example 3 branches: dev, prod, staging). However, since then we have got "match tag" functionality, so no need for that anymore. What is more, now you can just specify a regexp or a glob to match instead of blind force
.