Skip to content

Releases: keel-hq/keel

0.11.2

07 Oct 15:51
Compare
Choose a tag to compare

Fixed:

  • Approval issues #284

0.11.1

03 Oct 20:31
74cf54d
Compare
Choose a tag to compare

Added:

0.11.0

27 Sep 22:14
fbaa04e
Compare
Choose a tag to compare

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.

0.10.0

01 Sep 11:48
087d788
Compare
Choose a tag to compare

Added:

  • Helm matchTag functionality #263

0.9.7

29 Aug 23:17
6c7ff62
Compare
Choose a tag to compare

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

0.9.6

29 Aug 22:43
f883ecc
Compare
Choose a tag to compare

Changed:

  • Using in-memory cache for approvals (configmaps causing too much trouble at the moment, we should probably use CRDs for state).

0.9.5

25 Jun 21:19
73b1628
Compare
Choose a tag to compare

Added:

  • Optional "release notes" for Kubernetes and Helm resources to make reviews easier. #227

0.9.4

24 Jun 13:47
d71be45
Compare
Choose a tag to compare

Changed:

  • Once approval is received and a workload is updated, deleting approval. This addresses an issue when no versioning is being used and after the initial approval, workloads would be updated due to a previously approved image. Initial investigation into digest checks reached a dead end as not all triggers provide digest. #222

0.9.3

17 Jun 22:02
df7ed4a
Compare
Choose a tag to compare

Added:

  • Ability to set default Docker registry authentication details to avoid secret lookup: #226

Example value:

DOCKER_REGISTRY_CFG={"auths":{"https://index.docker.io/v1/":{"username":"login","password":"somepass","email":"[email protected]","auth":"longbase64secret"}}}

0.9.2

05 Jun 14:49
74597f4
Compare
Choose a tag to compare

Fixed: