Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates
MPL-2.0 License
Published by rusenask over 6 years ago
New:
keel.sh/match-tag=true
functionality for Kubernetes provider: https://github.com/keel-hq/keel/pull/191, thanks to @azr !Published by rusenask over 6 years ago
Added:
force
policy is used. Thanks to @hexsprite ! https://github.com/keel-hq/keel/issues/177
1.1.0-staging
will only update deployments with version 1.0.0-staging
. Thanks @azr ! https://github.com/keel-hq/keel/issues/182
Published by rusenask over 6 years ago
Fixed:
Added:
http://keel:9300/metrics
Published by rusenask over 6 years ago
Fixes:
Published by rusenask over 6 years ago
Added:
INSECURE_REGISTRY=true
to skip cert verification for private registries.Published by rusenask over 6 years ago
Fixed:
Published by rusenask over 6 years ago
New:
➜ kubectl rollout history deployment/whr
deployments "whr"
REVISION CHANGE-CAUSE
41 keel automated update version 0.10.5 -> 0.10.6
added in https://github.com/keel-hq/keel/pull/162
Fixed:
Published by rusenask over 6 years ago
Fixed:
Method: POST
Endpoint: /v1/approvals
{
"identifier": "default/myimage:1.5.5", // identifier for the approval request
"action": "approve", // approve/reject/delete, defaults to "approve"
"voter": "john",
}
Published by rusenask over 6 years ago
Fixed:
Added:
Published by rusenask over 6 years ago
Added:
Published by rusenask over 6 years ago
Fixed:
GOOGLE_APPLICATION_CREDENTIALS
to fix authentication problems, thanks @alitariAdded:
Published by rusenask almost 7 years ago
Updated:
Published by rusenask almost 7 years ago
Updated:
Published by rusenask almost 7 years ago
Read 0.5.0-rc.1 notes for major additions (approvals.
Since quite some time passed since the last release and considering few minor things added to the release candidate, it made sense to bump the version to 0.5.1
.
Added:
SLACK_APPROVALS_CHANNEL
for approvals, example use: SLACK_APPROVALS_CHANNEL=approvals
.Fixed:
0.5.0-rc.1
but worth to mention, .dockercfg secret format parsing.Updated:
keel-hq
organisation.Published by rusenask about 7 years ago
Added:
NOTIFICATION_LEVEL
env variable, available levels: debug, info, success, warn, error, fatal (https://github.com/rusenask/keel/issues/101)Approvals are enabled by default but currently there is only one way to approve/reject updates:
keel get approvals
, keel approve <identifier>
, keel reject <identifier>
lets users to vote for updates. Make sure you have set export SLACK_TOKEN=<your slack token here>
environment variable for Keel deployment.You can also view pending/rejected/approved update request on http://localhost:9300/v1/approvals
Keel endpoint (make sure you have service exported). Example response:
[
{
"provider": "helm",
"identifier": "default/wd:0.0.15",
"event": {
"repository": {
"host": "",
"name": "index.docker.io/karolisr/webhook-demo",
"tag": "0.0.15",
"digest": ""
},
"createdAt": "0001-01-01T00:00:00Z",
"triggerName": "poll"
},
"message": "New image is available for release default/wd (0.0.13 -> 0.0.15).",
"currentVersion": "0.0.13",
"newVersion": "0.0.15",
"votesRequired": 1,
"deadline": "2017-09-26T09:14:54.979211563+01:00",
"createdAt": "2017-09-26T09:14:54.980936804+01:00",
"updatedAt": "2017-09-26T09:14:54.980936824+01:00"
}
]
The only required configuration for Kubernetes deployment to enable approvals is to add keel.sh/approvals: "1"
with a number (string! as the underlying type is map[string]string) of required approvals.
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: wd
namespace: default
labels:
name: "wd"
keel.sh/policy: all
keel.sh/trigger: poll
keel.sh/approvals: "1"
To enable approvals for a Helm chart update Keel config section in values.yaml
with a required number of approvals:
replicaCount: 1
image:
repository: karolisr/webhook-demo
tag: "0.0.13"
pullPolicy: IfNotPresent
service:
name: webhookdemo
type: ClusterIP
externalPort: 8090
internalPort: 8090
keel:
# keel policy (all/major/minor/patch/force)
policy: all
# trigger type, defaults to events such as pubsub, webhooks
trigger: poll
# polling schedule
pollSchedule: "@every 1m"
# approvals required to proceed with an update
approvals: 1
# images to track and update
images:
- repository: image.repository
tag: image.tag
Published by rusenask about 7 years ago
Fixed:
Published by rusenask about 7 years ago
Fixed:
force
policy was used.Published by rusenask about 7 years ago
Fixed:
1.5
into 1.5.0
. Thanks @stickycode for contribution!Published by rusenask about 7 years ago
Fixed:
Published by rusenask about 7 years ago
Added:
Private registry support when secrets are created through:
kubectl create secret docker-registry myregistrykey --docker-server=https://index.docker.io/v1/ --docker-username=<user> --docker-password=<pass> --docker-email=<email>
For Kubernetes provider - nothing is needed to be done from user (except adding secret to either deployment pod spec or binding to your account).
For Helm provider, make sure it has standard labels of app
and release
, Keel is using them to identify particular pods that belong to each Helm release:
labels:
app: {{ template "name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }
Fixed:
A problem with non semver tags, ie: myimage:50 being replaced to myimage:50.0.0