Skip to content

Commit

Permalink
Merge pull request #49 from rusenask/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
rusenask authored Jul 24, 2017
2 parents b1a1c40 + 237129b commit b44ad3e
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 20 deletions.
4 changes: 2 additions & 2 deletions chart/keel/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: v1
name: keel
description: Open source, tool for automating Kubernetes deployment updates. Keel is stateless, robust and lightweight.
version: 0.1.0
appversion: 0.4.0-rc.2
version: 0.1.1
appversion: 0.4.0-rc.3
keywords:
- kubernetes deployment
- helm release
Expand Down
25 changes: 24 additions & 1 deletion chart/keel/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ metadata:
annotations:
kubernetes.io/service-account.name: keel
spec:
replicas: {{ .Values.replicaCount }}
replicas: 1
template:
metadata:
labels:
Expand Down Expand Up @@ -65,3 +65,26 @@ spec:
timeoutSeconds: 10
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- if .Values.webhookRelay.enabled }}
- name: webhookrelayd
image: "{{ .Values.webhookRelay.image.repository }}:{{ .Values.webhookRelay.image.tag }}"
imagePullPolicy: {{ .Values.webhookRelay.image.pullPolicy }}
command: ["/webhookrelayd"]
env:
- name: KEY
valueFrom:
secretKeyRef:
name: {{ template "name" . }}-webhookrelay
key: key
- name: SECRET
valueFrom:
secretKeyRef:
name: {{ template "name" . }}-webhookrelay
key: secret
- name: BUCKET
value: "{{ .Values.webhookRelay.bucket }}"
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- end }}
nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }}
16 changes: 16 additions & 0 deletions chart/keel/templates/secrets-webhookrelay.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{{- if .Values.webhookRelay.enabled }}
apiVersion: v1
kind: Secret
metadata:
name: {{ template "name" . }}-webhookrelay
namespace: kube-system
labels:
app: {{ template "name" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
type: Opaque
data:
key: {{ .Values.webhookRelay.key | b64enc }}
secret: {{ .Values.webhookRelay.secret | b64enc }}
{{- end }}
53 changes: 39 additions & 14 deletions chart/keel/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicaCount: 1

image:
repository: karolisr/keel
tag: 0.4.0-rc.3
Expand All @@ -16,7 +14,6 @@ service:
externalPort: 9300
internalPort: 9300


# Polling is enabled by default,
# you can disable it setting value below to false
polling:
Expand All @@ -39,21 +36,49 @@ webhook:
enabled: false
endpoint: ""

# Webhook Relay integration
# If you don’t want to expose your Keel service, you can use https://webhookrelay.com/
# which can deliver webhooks to your internal Keel service through Keel sidecar container.
webhookRelay:
enabled: false
image:
repository: webhookrelay/webhookrelayd
tag: 0.2.7
pullPolicy: IfNotPresent
# webhookrelay.com credentials
key: ""
secret: ""
bucket: ""

# Slack notification
slack:
enabled: false
token: ""
channel: ""

# Resources
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
#requests:
# cpu: 100m
# memory: 128Mi
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi

# Keel self-update
# uncomment lines below if you want Keel to automaticly
# self-update to the latest release version
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 3m"
# images to track and update
images:
- repository: image.repository
tag: image.tag

# NodeSelector
nodeSelector: {}
10 changes: 7 additions & 3 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,15 @@ Keel is a tool for automating [Kubernetes](https://kubernetes.io/) deployment up

Keel provides several key features:

* __Semver policies__ - specify update policy for each deployment individually.
* __[Kubernetes](https://kubernetes.io/) and [Helm](https://helm.sh) providers__ - Keel has direct integrations with Kubernetes and Helm.

* __No CLI/API__ - tired of `f***ctl` for everything? Keel doesn't have one. Gets job done through labels, annotations, charts.

* __Semver policies__ - specify update policy for each deployment/Helm release individually.

* __Automatic [Google Container Registry](https://cloud.google.com/container-registry/) configuration__ - Keel automatically sets up topic and subscriptions for your deployment images by periodically scanning your environment.

* __[DockerHub Webhooks](https://docs.docker.com/docker-hub/webhooks/) support__ - Keel accepts dockerhub style webhooks on `/v1/webhooks/dockerhub` endpoint. Impacted deployments will be identified and updated.
* __[Native, DockerHub and Quay webhooks](https://keel.sh/user-guide/triggers/#webhooks) support__ - once webhook is received impacted deployments will be identified and updated.

* __[Polling](https://keel.sh/user-guide/#polling-deployment-example)__ - when webhooks and pubsub aren't available - Keel can still be useful by checking Docker Registry for new tags (if current tag is semver) or same tag SHA digest change (ie: `latest`).

Expand All @@ -40,7 +44,7 @@ Before starting to work on some big or medium features - raise an issue [here](h

### Developing Keel

If you wish to work on Keel itself, you will need Go 1.8+ installed. Make sure you put Keel into correct Gopath and get remaining dependencies (some dependencies are already locked through glide).
If you wish to work on Keel itself, you will need Go 1.8+ installed. Make sure you put Keel into correct Gopath and `go build` (dependency management is done through Glide).

### Roadmap

Expand Down

0 comments on commit b44ad3e

Please sign in to comment.