Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates
MPL-2.0 License
Published by rusenask almost 6 years ago
Published by rusenask almost 6 years ago
Added:
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: wd
namespace: default
labels:
name: "wd"
annotations:
keel.sh/policy: "glob:build-*" # <- build-1, build-2, build-foo will match this.
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: wd
namespace: default
labels:
name: "wd"
annotations:
keel.sh/policy: "regexp:^([a-zA-Z]+)$"
Fixed:
Published by rusenask about 6 years ago
Added:
Published by rusenask about 6 years ago
Fixed:
Published by rusenask about 6 years ago
Added:
Published by rusenask about 6 years ago
Fixed:
Added:
New features introduced regarding how we do policies https://github.com/keel-hq/keel/issues/252 https://github.com/keel-hq/keel/issues/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:
---
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.
keel.sh/policy = regexp:^([a-zA-Z]+)$
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.
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
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
.
Published by rusenask about 6 years ago
Added:
Published by rusenask about 6 years ago
Added:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
labels:
# force policy will ensure that deployment is updated
# even when tag is unchanged (latest remains)
keel.sh/policy: force
keel.sh/trigger: poll
annotations:
keel.sh/pollSchedule: "@every 30s"
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: keelhq/cron-example:latest
restartPolicy: OnFailure
Published by rusenask about 6 years ago
Changed:
Published by rusenask over 6 years ago
Added:
Published by rusenask over 6 years ago
Changed:
Published by rusenask over 6 years ago
Added:
Example value:
DOCKER_REGISTRY_CFG={"auths":{"https://index.docker.io/v1/":{"username":"login","password":"somepass","email":"[email protected]","auth":"longbase64secret"}}}
Published by rusenask over 6 years ago
Fixed:
Published by rusenask over 6 years ago
Fixed:
Updated:
Added:
image.digest
chart value to force upgrade specific resource https://github.com/keel-hq/keel/pull/214, thanks @so0kPublished by rusenask over 6 years ago
Added:
Fixed:
Published by rusenask over 6 years ago
Fixed:
Published by rusenask over 6 years ago
Added:
Published by rusenask over 6 years ago
Added:
export AWS_REGION=us-east-2
export AWS_ACCESS_KEY_ID=AKIA..
export AWS_SECRET_ACCESS_KEY=hEZ...
There were also changes like credentialshelper
package addition which should make it a lot easier to add custom support for different authentication mechanisms.
Published by rusenask over 6 years ago
Fixes:
Published by rusenask over 6 years ago
Added: