mirror of
https://github.com/stakater/Reloader.git
synced 2026-02-14 09:59:50 +00:00
Implement PR-1 review comments
This commit is contained in:
@@ -7,12 +7,13 @@ metadata:
|
||||
name: {{ template "reloader-name" . }}
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
{{ include "reloader-labels.stakater" . | indent 4 }}
|
||||
{{ include "reloader-labels.chart" . | indent 4 }}
|
||||
name: {{ template "reloader-name" . }}-role
|
||||
namespace: {{ .Release.Namespace }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
@@ -25,15 +26,16 @@ rules:
|
||||
- watch
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
kind: RoleBinding
|
||||
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
|
||||
kind: Role
|
||||
name: {{ template "reloader-name" . }}-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
|
||||
@@ -14,6 +14,7 @@ import (
|
||||
var (
|
||||
client, err = kube.GetClient()
|
||||
configmapNamePrefix = "testconfigmap-reloader"
|
||||
secretNamePrefix = "testsecret-reloader"
|
||||
letters = []rune("abcdefghijklmnopqrstuvwxyz")
|
||||
)
|
||||
|
||||
@@ -72,6 +73,51 @@ func TestControllerForUpdatingConfigmapShouldUpdateDeployment(t *testing.T) {
|
||||
time.Sleep(15 * time.Second)
|
||||
}
|
||||
|
||||
func TestControllerForUpdatingSecretShouldUpdateDeployment(t *testing.T) {
|
||||
namespace := "test-reloader-secrets"
|
||||
createNamespace(t, namespace)
|
||||
defer deleteNamespace(t, namespace)
|
||||
|
||||
controller, err := NewController(client, "secrets", namespace)
|
||||
if err != nil {
|
||||
logrus.Infof("Unable to create NewController error = %v", err)
|
||||
return
|
||||
}
|
||||
stop := make(chan struct{})
|
||||
defer close(stop)
|
||||
go controller.Run(1, stop)
|
||||
time.Sleep(10 * time.Second)
|
||||
|
||||
secretName := secretNamePrefix + "-update-" + randSeq(5)
|
||||
secretClient := client.CoreV1().Secrets(namespace)
|
||||
secret := initSecret(namespace, secretName)
|
||||
secret, err = secretClient.Create(secret)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
logrus.Infof("Created Secret %q.\n", secret.GetObjectMeta().GetName())
|
||||
time.Sleep(10 * time.Second)
|
||||
|
||||
logrus.Infof("Updating Secret %q.\n", secret.GetObjectMeta().GetName())
|
||||
secret, err = secretClient.Get(secretName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
|
||||
}
|
||||
secret = updateSecret(namespace, secretName)
|
||||
_, updateErr := secretClient.Update(secret)
|
||||
|
||||
// TODO: Add functionality to verify reloader functionality here
|
||||
|
||||
if updateErr != nil {
|
||||
controller.client.CoreV1().Secrets(namespace).Delete(secretName, &metav1.DeleteOptions{})
|
||||
panic(updateErr)
|
||||
}
|
||||
time.Sleep(10 * time.Second)
|
||||
logrus.Infof("Deleting Secret %q.\n", secret.GetObjectMeta().GetName())
|
||||
controller.client.CoreV1().Secrets(namespace).Delete(secretName, &metav1.DeleteOptions{})
|
||||
time.Sleep(15 * time.Second)
|
||||
}
|
||||
|
||||
func initConfigmap(namespace string, configmapName string) *v1.ConfigMap {
|
||||
return &v1.ConfigMap{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
@@ -83,6 +129,17 @@ func initConfigmap(namespace string, configmapName string) *v1.ConfigMap {
|
||||
}
|
||||
}
|
||||
|
||||
func initSecret(namespace string, secretName string) *v1.Secret {
|
||||
return &v1.Secret{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: secretName,
|
||||
Namespace: namespace,
|
||||
Labels: map[string]string{"firstLabel": "temp"},
|
||||
},
|
||||
Data: map[string][]byte{"test.url": []byte("dGVzdFNlY3JldEVuY29kaW5nRm9yUmVsb2FkZXI=")},
|
||||
}
|
||||
}
|
||||
|
||||
func createNamespace(t *testing.T, namespace string) {
|
||||
_, err := client.CoreV1().Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: namespace}})
|
||||
if err != nil {
|
||||
@@ -111,3 +168,14 @@ func updateConfigmap(namespace string, configmapName string) *v1.ConfigMap {
|
||||
Data: map[string]string{"test.url": "www.stakater.com"},
|
||||
}
|
||||
}
|
||||
|
||||
func updateSecret(namespace string, secretName string) *v1.Secret {
|
||||
return &v1.Secret{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: secretName,
|
||||
Namespace: namespace,
|
||||
Labels: map[string]string{"firstLabel": "temp"},
|
||||
},
|
||||
Data: map[string][]byte{"test.url": []byte("dGVzdFVwZGF0ZWRTZWNyZXRFbmNvZGluZ0ZvclJlbG9hZGVy")},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user