@rusenask rusenask released this Dec 14, 2018 · 4 commits to master since this release

Assets 2

Added:

  • never policy - #322, thanks @orymate
  • GCR cluster name override - #324
  • Improving helm chart to allow for service serviceAnnotations - #316, thanks @boxrick
  • A lot more tests (end to end)
  • Got autobuild for charts.keel.sh working, thanks @rimusz !
  • New policies (glob and regexp):
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata: 
  name: wd
  namespace: default
  labels: 
      name: "wd"
  annotations:
      keel.sh/policy: "regexp:^([a-zA-Z]+)$"
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. 

Fixed:

  • Better registry & secret compare - #301
  • Simplified polling and fixed a bug when a registry contained tags with metadata - #318
  • Fixed default approvals deadline for Helm provider
  • Webhook notifications now support proxy settings: c1f5512

@rusenask rusenask released this Dec 12, 2018 · 6 commits to master since this release

Assets 2

Added:

  • never policy - #322, thanks @orymate
  • GCR cluster name override - #324
  • Improving helm chart to allow for service serviceAnnotations - #316, thanks @boxrick

Fixed:

  • Better registry & secret compare - #301
  • Simplified polling and fixed a bug when a registry contained tags with metadata - #318

@rusenask rusenask released this Nov 24, 2018 · 43 commits to master since this release

Assets 2
  • A lot more tests (end to end)
  • Webhook notifications now support proxy settings: c1f5512
  • Got autobuild for charts.keel.sh working, thanks @rimusz !
  • Further work on #306

@rusenask rusenask released this Nov 7, 2018 · 99 commits to master since this release

Assets 2

Added:

  • Policies and trigger type (if poll) can now be specified in annotations, this unblocks:
---
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:

  • a bug in docker registry notifications handler
  • a bug in helm provider where it was complaining on each helm chart that didn't have a keel config

@rusenask rusenask released this Oct 17, 2018 · 107 commits to master since this release

Assets 2

Added:

@rusenask rusenask released this Oct 7, 2018 · 115 commits to master since this release

Assets 2

Fixed:

  • Approval issues #284

@rusenask rusenask released this Oct 3, 2018 · 118 commits to master since this release

Assets 2

Added:

@rusenask rusenask released this Sep 27, 2018 · 122 commits to master since this release

Assets 2

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:

---
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.

@rusenask rusenask released this Sep 1, 2018 · 159 commits to master since this release

Assets 2

Added:

  • Helm matchTag functionality #263

@rusenask rusenask released this Aug 29, 2018 · 164 commits to master since this release

Assets 2

Added:

  • Cron Job support, example (#257):
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