Add secrets from env tests

This commit is contained in:
stefanprodan
2019-01-25 18:27:05 +02:00
parent 8170916897
commit dc347e273d
3 changed files with 77 additions and 1 deletions
+52 -1
View File
@@ -40,10 +40,11 @@ func SetupTest() (
) {
canary = newTestCanary()
configMap := NewTestConfigMap()
secret := NewTestSecret()
dep := newTestDeployment()
hpa := newTestHPA()
kubeClient = fake.NewSimpleClientset(configMap, dep, hpa)
kubeClient = fake.NewSimpleClientset(secret, configMap, dep, hpa)
istioClient = fakeIstio.NewSimpleClientset()
@@ -138,6 +139,34 @@ func NewTestConfigMapUpdated() *corev1.ConfigMap {
}
}
func NewTestSecret() *corev1.Secret {
return &corev1.Secret{
TypeMeta: metav1.TypeMeta{APIVersion: corev1.SchemeGroupVersion.String()},
ObjectMeta: metav1.ObjectMeta{
Namespace: "default",
Name: "podinfo-secret-env",
},
Type: corev1.SecretTypeOpaque,
Data: map[string][]byte{
"apiKey": []byte("test"),
},
}
}
func NewTestSecretUpdated() *corev1.Secret {
return &corev1.Secret{
TypeMeta: metav1.TypeMeta{APIVersion: corev1.SchemeGroupVersion.String()},
ObjectMeta: metav1.ObjectMeta{
Namespace: "default",
Name: "podinfo-secret-env",
},
Type: corev1.SecretTypeOpaque,
Data: map[string][]byte{
"apiKey": []byte("test2"),
},
}
}
func newTestCanary() *v1alpha3.Canary {
cd := &v1alpha3.Canary{
TypeMeta: metav1.TypeMeta{APIVersion: v1alpha3.SchemeGroupVersion.String()},
@@ -228,6 +257,17 @@ func newTestDeployment() *appsv1.Deployment {
},
},
},
{
Name: "API_KEY",
ValueFrom: &corev1.EnvVarSource{
SecretKeyRef: &corev1.SecretKeySelector{
LocalObjectReference: corev1.LocalObjectReference{
Name: "podinfo-secret-env",
},
Key: "apiKey",
},
},
},
},
},
},
@@ -286,6 +326,17 @@ func newTestDeploymentUpdated() *appsv1.Deployment {
},
},
},
{
Name: "API_KEY",
ValueFrom: &corev1.EnvVarSource{
SecretKeyRef: &corev1.SecretKeySelector{
LocalObjectReference: corev1.LocalObjectReference{
Name: "podinfo-secret-env",
},
Key: "apiKey",
},
},
},
},
},
},
+10
View File
@@ -22,6 +22,7 @@ func TestCanaryDeployer_Sync(t *testing.T) {
dep := newTestDeployment()
configMap := NewTestConfigMap()
secret := NewTestSecret()
primaryImage := depPrimary.Spec.Template.Spec.Containers[0].Image
sourceImage := dep.Spec.Template.Spec.Containers[0].Image
@@ -46,6 +47,15 @@ func TestCanaryDeployer_Sync(t *testing.T) {
if configPrimary.Data["color"] != configMap.Data["color"] {
t.Errorf("Got ConfigMap color %s wanted %s", configPrimary.Data["color"], configMap.Data["color"])
}
secretPrimary, err := kubeClient.CoreV1().Secrets("default").Get("podinfo-secret-env-primary", metav1.GetOptions{})
if err != nil {
t.Fatal(err.Error())
}
if string(secretPrimary.Data["apiKey"]) != string(secret.Data["apiKey"]) {
t.Errorf("Got primary secret %s wanted %s", secretPrimary.Data["apiKey"], secret.Data["apiKey"])
}
}
func TestCanaryDeployer_IsNewSpec(t *testing.T) {
+15
View File
@@ -157,6 +157,12 @@ func TestScheduler_Promotion(t *testing.T) {
t.Fatal(err.Error())
}
secret2 := NewTestSecretUpdated()
_, err = kubeClient.CoreV1().Secrets("default").Update(secret2)
if err != nil {
t.Fatal(err.Error())
}
// advance
ctrl.advanceCanary("podinfo", "default", true)
@@ -196,6 +202,15 @@ func TestScheduler_Promotion(t *testing.T) {
t.Errorf("Got primary ConfigMap color %s wanted %s", configPrimary.Data["color"], config2.Data["color"])
}
secretPrimary, err := kubeClient.CoreV1().Secrets("default").Get("podinfo-secret-env-primary", metav1.GetOptions{})
if err != nil {
t.Fatal(err.Error())
}
if string(secretPrimary.Data["apiKey"]) != string(secret2.Data["apiKey"]) {
t.Errorf("Got primary secret %s wanted %s", secretPrimary.Data["apiKey"], secret2.Data["apiKey"])
}
c, err := flaggerClient.FlaggerV1alpha3().Canaries("default").Get("podinfo", metav1.GetOptions{})
if err != nil {
t.Fatal(err.Error())