Compare commits

...

6 Commits
0.0.2 ... 0.0.3

Author SHA1 Message Date
stakater-user
2cc4941ffe Bump Version to 0.0.3 2018-07-26 16:11:54 +00:00
Waseem Hassan
53ca2ef340 Merge pull request #8 from stakater/make-jumbo-manifest
[STK-322] Increase test case timeout
2018-07-26 20:49:57 +05:00
faizanahmad055
9d38927e4a Increase test case timeout 2018-07-26 20:23:20 +05:00
Waseem Hassan
c670fb7e65 Merge pull request #7 from stakater/reloader-global-watch
[STK-322] Update deployment and rbac to watch globally
2018-07-26 18:37:22 +05:00
faizanahmad055
0427d58a4f Update fabric8 pipeline version 2018-07-26 18:21:43 +05:00
faizanahmad055
1ad7a8fa76 Update deployment and rbac to watch globally 2018-07-26 17:36:33 +05:00
13 changed files with 209 additions and 34 deletions

View File

@@ -1 +1 @@
0.0.2
0.0.3

2
Jenkinsfile vendored
View File

@@ -1,5 +1,5 @@
#!/usr/bin/groovy
@Library('github.com/stakater/fabric8-pipeline-library@v2.5.1')
@Library('github.com/stakater/fabric8-pipeline-library@v2.5.2')
def dummy

View File

@@ -32,7 +32,7 @@ binary-image: builder-image
@docker run --network host --rm "${BUILDER}" | docker build --network host -t "${REPOSITORY}" -f Dockerfile.run -
test:
"$(GOCMD)" test -v ./...
"$(GOCMD)" test -timeout 1800s -v ./...
stop:
@docker stop "${BINARY}"

View File

@@ -1,9 +1,5 @@
# RELOADER
## WHY NAME RELOADER
In english language, Reloader is a thing/tool that can reload certain stuff. So referring to that meaning reloader can reload
## Problem
We would like to watch if some change happens in `ConfigMap` and `Secret` objects and then perform certain upgrade on relevant `Deployment`, `Deamonset` and `Statefulset`
@@ -53,10 +49,21 @@ kubectl apply -f rbac.yaml -n <namespace>
kubectl apply -f deployment.yaml -n <namespace>
```
### Vanilla Manifests
You can apply vanilla manifests by running the following command
```bash
kubecl apply -f https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml
```
### Helm Charts
Or alternatively if you configured `helm` on your cluster, you can deploy Reloader via helm chart located under `deployments/kubernetes/chart/reloader` folder.
### Monitor All namespaces
You can monitor all namespaces in cluster by setting the `watchGlobally` flag to `true` in manifest file.
## Help
**Got a question?**

View File

@@ -3,7 +3,7 @@
apiVersion: v1
name: reloader
description: Reloader chart that runs on kubernetes
version: 0.0.2
version: 0.0.3
keywords:
- Reloader
- kubernetes

View File

@@ -18,10 +18,12 @@ spec:
spec:
containers:
- env:
{{- if eq .Values.reloader.watchGlobally false }}
- name: KUBERNETES_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
{{- end }}
image: "{{ .Values.reloader.image.name }}:{{ .Values.reloader.image.tag }}"
imagePullPolicy: {{ .Values.reloader.image.pullPolicy }}
name: {{ template "reloader-name" . }}

View File

@@ -6,6 +6,56 @@ metadata:
{{ include "reloader-labels.chart" . | indent 4 }}
name: {{ template "reloader-name" . }}
---
{{- if .Values.reloader.watchGlobally }}
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
{{ include "reloader-labels.stakater" . | indent 4 }}
{{ include "reloader-labels.chart" . | indent 4 }}
name: {{ template "reloader-name" . }}-role
namespace: {{ .Release.Namespace }}
rules:
- apiGroups:
- ""
resources:
- secrets
- configmaps
verbs:
- list
- get
- watch
- apiGroups:
- ""
- "extensions"
- "apps"
resources:
- deployments
- daemonsets
- statefulsets
verbs:
- list
- get
- update
- patch
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
{{ include "reloader-labels.stakater" . | indent 4 }}
{{ include "reloader-labels.chart" . | indent 4 }}
name: {{ template "reloader-name" . }}-role-binding
namespace: {{ .Release.Namespace }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "reloader-name" . }}-role
subjects:
- kind: ServiceAccount
name: {{ template "reloader-name" . }}
namespace: {{ .Release.Namespace }}
{{- else }}
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
@@ -53,4 +103,5 @@ roleRef:
subjects:
- kind: ServiceAccount
name: {{ template "reloader-name" . }}
namespace: {{ .Release.Namespace }}
namespace: {{ .Release.Namespace }}
{{- end }}

View File

@@ -7,8 +7,9 @@ reloader:
labels:
provider: stakater
group: com.stakater.platform
version: 0.0.2
version: 0.0.3
image:
name: stakater/reloader
tag: "0.0.2"
pullPolicy: IfNotPresent
tag: "0.0.3"
pullPolicy: IfNotPresent
watchGlobally: false

View File

@@ -7,8 +7,8 @@ metadata:
app: reloader
group: com.stakater.platform
provider: stakater
version: 0.0.2
chart: "reloader-0.0.2"
version: 0.0.3
chart: "reloader-0.0.3"
release: "RELEASE-NAME"
heritage: "Tiller"
name: reloader
@@ -33,7 +33,7 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: "stakater/reloader:0.0.2"
image: "stakater/reloader:0.0.3"
imagePullPolicy: IfNotPresent
name: reloader
serviceAccountName: reloader

View File

@@ -7,8 +7,8 @@ metadata:
app: reloader
group: com.stakater.platform
provider: stakater
version: 0.0.2
chart: "reloader-0.0.2"
version: 0.0.3
chart: "reloader-0.0.3"
release: "RELEASE-NAME"
heritage: "Tiller"
name: reloader
@@ -20,8 +20,8 @@ metadata:
app: reloader
group: com.stakater.platform
provider: stakater
version: 0.0.2
chart: "reloader-0.0.2"
version: 0.0.3
chart: "reloader-0.0.3"
release: "RELEASE-NAME"
heritage: "Tiller"
name: reloader-role
@@ -57,8 +57,8 @@ metadata:
app: reloader
group: com.stakater.platform
provider: stakater
version: 0.0.2
chart: "reloader-0.0.2"
version: 0.0.3
chart: "reloader-0.0.3"
release: "RELEASE-NAME"
heritage: "Tiller"
name: reloader-role-binding

View File

@@ -0,0 +1,113 @@
---
# Source: reloader/templates/deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: reloader
group: com.stakater.platform
provider: stakater
version: 0.0.3
chart: "reloader-0.0.3"
release: "RELEASE-NAME"
heritage: "Tiller"
name: reloader
spec:
replicas: 1
revisionHistoryLimit: 2
selector:
matchLabels:
app: reloader
group: com.stakater.platform
provider: stakater
template:
metadata:
labels:
app: reloader
group: com.stakater.platform
provider: stakater
spec:
containers:
- env:
- name: KUBERNETES_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: "stakater/reloader:0.0.3"
imagePullPolicy: IfNotPresent
name: reloader
serviceAccountName: reloader
---
# Source: reloader/templates/rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: reloader
group: com.stakater.platform
provider: stakater
version: 0.0.3
chart: "reloader-0.0.3"
release: "RELEASE-NAME"
heritage: "Tiller"
name: reloader
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
labels:
app: reloader
group: com.stakater.platform
provider: stakater
version: 0.0.3
chart: "reloader-0.0.3"
release: "RELEASE-NAME"
heritage: "Tiller"
name: reloader-role
namespace: tools
rules:
- apiGroups:
- ""
resources:
- secrets
- configmaps
verbs:
- list
- get
- watch
- apiGroups:
- ""
- "extensions"
- "apps"
resources:
- deployments
- daemonsets
- statefulsets
verbs:
- list
- get
- update
- patch
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
labels:
app: reloader
group: com.stakater.platform
provider: stakater
version: 0.0.3
chart: "reloader-0.0.3"
release: "RELEASE-NAME"
heritage: "Tiller"
name: reloader-role-binding
namespace: tools
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: reloader-role
subjects:
- kind: ServiceAccount
name: reloader
namespace: tools

View File

@@ -11,4 +11,5 @@ reloader:
image:
name: {{ getenv "DOCKER_IMAGE" }}
tag: "{{ getenv "VERSION" }}"
pullPolicy: IfNotPresent
pullPolicy: IfNotPresent
watchGlobally: false

View File

@@ -257,7 +257,7 @@ func CreateConfigMap(client kubernetes.Interface, namespace string, configmapNam
logrus.Infof("Creating configmap")
configmapClient := client.CoreV1().ConfigMaps(namespace)
_, err := configmapClient.Create(GetConfigmap(namespace, configmapName, data))
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return configmapClient, err
}
@@ -266,7 +266,7 @@ func CreateSecret(client kubernetes.Interface, namespace string, secretName stri
logrus.Infof("Creating secret")
secretClient := client.CoreV1().Secrets(namespace)
_, err := secretClient.Create(GetSecret(namespace, secretName, data))
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return secretClient, err
}
@@ -275,7 +275,7 @@ func CreateDeployment(client kubernetes.Interface, deploymentName string, namesp
logrus.Infof("Creating Deployment")
deploymentClient := client.ExtensionsV1beta1().Deployments(namespace)
deployment, err := deploymentClient.Create(GetDeployment(namespace, deploymentName))
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return deployment, err
}
@@ -284,7 +284,7 @@ func CreateDaemonSet(client kubernetes.Interface, daemonsetName string, namespac
logrus.Infof("Creating DaemonSet")
daemonsetClient := client.ExtensionsV1beta1().DaemonSets(namespace)
daemonset, err := daemonsetClient.Create(GetDaemonSet(namespace, daemonsetName))
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return daemonset, err
}
@@ -293,7 +293,7 @@ func CreateStatefulSet(client kubernetes.Interface, statefulsetName string, name
logrus.Infof("Creating StatefulSet")
statefulsetClient := client.AppsV1beta1().StatefulSets(namespace)
statefulset, err := statefulsetClient.Create(GetStatefulSet(namespace, statefulsetName))
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return statefulset, err
}
@@ -301,7 +301,7 @@ func CreateStatefulSet(client kubernetes.Interface, statefulsetName string, name
func DeleteDeployment(client kubernetes.Interface, namespace string, deploymentName string) error {
logrus.Infof("Deleting Deployment")
deploymentError := client.ExtensionsV1beta1().Deployments(namespace).Delete(deploymentName, &metav1.DeleteOptions{})
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return deploymentError
}
@@ -309,7 +309,7 @@ func DeleteDeployment(client kubernetes.Interface, namespace string, deploymentN
func DeleteDaemonSet(client kubernetes.Interface, namespace string, daemonsetName string) error {
logrus.Infof("Deleting DaemonSet %s", daemonsetName)
daemonsetError := client.ExtensionsV1beta1().DaemonSets(namespace).Delete(daemonsetName, &metav1.DeleteOptions{})
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return daemonsetError
}
@@ -317,7 +317,7 @@ func DeleteDaemonSet(client kubernetes.Interface, namespace string, daemonsetNam
func DeleteStatefulSet(client kubernetes.Interface, namespace string, statefulsetName string) error {
logrus.Infof("Deleting StatefulSet %s", statefulsetName)
statefulsetError := client.AppsV1beta1().StatefulSets(namespace).Delete(statefulsetName, &metav1.DeleteOptions{})
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return statefulsetError
}
@@ -331,7 +331,7 @@ func UpdateConfigMap(configmapClient core_v1.ConfigMapInterface, namespace strin
configmap = GetConfigmap(namespace, configmapName, data)
}
_, updateErr := configmapClient.Update(configmap)
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return updateErr
}
@@ -345,7 +345,7 @@ func UpdateSecret(secretClient core_v1.SecretInterface, namespace string, secret
secret = GetSecret(namespace, secretName, data)
}
_, updateErr := secretClient.Update(secret)
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return updateErr
}
@@ -353,7 +353,7 @@ func UpdateSecret(secretClient core_v1.SecretInterface, namespace string, secret
func DeleteConfigMap(client kubernetes.Interface, namespace string, configmapName string) error {
logrus.Infof("Deleting configmap %q.\n", configmapName)
err := client.CoreV1().ConfigMaps(namespace).Delete(configmapName, &metav1.DeleteOptions{})
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return err
}
@@ -361,7 +361,7 @@ func DeleteConfigMap(client kubernetes.Interface, namespace string, configmapNam
func DeleteSecret(client kubernetes.Interface, namespace string, secretName string) error {
logrus.Infof("Deleting secret %q.\n", secretName)
err := client.CoreV1().Secrets(namespace).Delete(secretName, &metav1.DeleteOptions{})
time.Sleep(5 * time.Second)
time.Sleep(10 * time.Second)
return err
}