@@ -11,11 +11,14 @@ import (
11
11
. "github.com/onsi/gomega"
12
12
corev1 "k8s.io/api/core/v1"
13
13
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
14
+ "k8s.io/apimachinery/pkg/runtime"
15
+ "k8s.io/apimachinery/pkg/runtime/serializer"
14
16
krand "k8s.io/apimachinery/pkg/util/rand"
15
17
"k8s.io/client-go/informers"
16
18
coreinformers "k8s.io/client-go/informers/core/v1"
17
19
"k8s.io/client-go/kubernetes"
18
20
"k8s.io/client-go/kubernetes/fake"
21
+ "k8s.io/client-go/kubernetes/scheme"
19
22
"k8s.io/client-go/tools/cache"
20
23
21
24
"github.com/nutanix-cloud-native/prism-go-client/environment/credentials"
@@ -56,22 +59,21 @@ func runCMInformer(ctx context.Context, clientset kubernetes.Interface) coreinfo
56
59
var _ = Describe ("Kubernetes Environment Provider" , Ordered , func () {
57
60
expectedCACert , expectedB64CACert , err := certutils .GenerateCACertForTesting ()
58
61
Expect (err ).ToNot (HaveOccurred ())
59
-
60
62
var (
61
- secretName = "nutanix-credentials "
62
- cmName = "user-ca-bundle "
63
- secretNamespace = "kube-system "
64
- secretInformer coreinformers.SecretInformer
65
- cmInformer coreinformers.ConfigMapInformer
66
- prov types.Provider
67
- ip = krand .String (10 )
68
- username = krand .String (10 )
69
- password = krand .String (10 )
63
+ cmName = "user-ca-bundle "
64
+ namespace = "kube-system "
65
+ secretName = "nutanix-credentials "
66
+ secretInformer coreinformers.SecretInformer
67
+ cmInformer coreinformers.ConfigMapInformer
68
+ prov types.Provider
69
+ ip = krand .String (10 )
70
+ username = krand .String (10 )
71
+ password = krand .String (10 )
70
72
71
73
fakeSecret = & corev1.Secret {
72
74
ObjectMeta : metav1.ObjectMeta {
73
75
Name : secretName ,
74
- Namespace : secretNamespace ,
76
+ Namespace : namespace ,
75
77
},
76
78
Data : map [string ][]byte {
77
79
"credentials" : []byte (fmt .Sprintf (`
@@ -90,49 +92,53 @@ var _ = Describe("Kubernetes Environment Provider", Ordered, func() {
90
92
` , username , password )),
91
93
},
92
94
}
93
- fakeCM = & corev1.ConfigMap {
94
- ObjectMeta : metav1.ObjectMeta {
95
- Name : cmName ,
96
- Namespace : secretNamespace ,
97
- },
98
- BinaryData : map [string ][]byte {
99
- certBundleKey : []byte (expectedB64CACert ),
100
- },
101
- }
102
-
103
- fakeClientset = fake .NewSimpleClientset (fakeSecret , fakeCM )
104
- prismEndpoint = credentials.NutanixPrismEndpoint {
105
- Address : ip ,
106
- Port : 9440 ,
107
- Insecure : true ,
108
- CredentialRef : & credentials.NutanixCredentialReference {
109
- Kind : credentials .SecretKind ,
110
- Name : secretName ,
111
- Namespace : secretNamespace ,
112
- },
113
- AdditionalTrustBundle : & credentials.NutanixTrustBundleReference {
114
- Kind : credentials .NutanixTrustBundleKindConfigMap ,
115
- Name : cmName ,
116
- Namespace : secretNamespace ,
117
- },
118
- }
119
95
)
96
+
97
+ const fakeCMTemplate = `apiVersion: v1
98
+ kind: ConfigMap
99
+ metadata:
100
+ name: %s
101
+ namespace: %s
102
+ binaryData:
103
+ ca.crt: %s`
104
+ fakeCMStr := fmt .Sprintf (fakeCMTemplate , cmName , namespace , expectedB64CACert )
105
+ decoder := serializer .NewCodecFactory (scheme .Scheme ).UniversalDecoder ()
106
+ fakeCM := & corev1.ConfigMap {}
107
+ err = runtime .DecodeInto (decoder , []byte (fakeCMStr ), fakeCM )
108
+ Expect (err ).ToNot (HaveOccurred ())
109
+
110
+ fakeClientset := fake .NewSimpleClientset (fakeSecret , fakeCM )
111
+ prismEndpoint := credentials.NutanixPrismEndpoint {
112
+ Address : ip ,
113
+ Port : 9440 ,
114
+ Insecure : true ,
115
+ CredentialRef : & credentials.NutanixCredentialReference {
116
+ Kind : credentials .SecretKind ,
117
+ Name : secretName ,
118
+ Namespace : namespace ,
119
+ },
120
+ AdditionalTrustBundle : & credentials.NutanixTrustBundleReference {
121
+ Kind : credentials .NutanixTrustBundleKindConfigMap ,
122
+ Name : cmName ,
123
+ Namespace : namespace ,
124
+ },
125
+ }
120
126
BeforeAll (func () {
121
127
secretInformer = runSecretInformer (context .TODO (), fakeClientset )
122
128
cmInformer = runCMInformer (context .TODO (), fakeClientset )
123
129
prov = NewProvider (prismEndpoint , secretInformer , cmInformer )
124
130
})
125
131
It ("must be able to look up secret" , func () {
126
- _ , err := fakeClientset .CoreV1 ().Secrets (secretNamespace ).Get (context .TODO (), secretName , metav1.GetOptions {})
132
+ _ , err := fakeClientset .CoreV1 ().Secrets (namespace ).Get (context .TODO (), secretName , metav1.GetOptions {})
127
133
Expect (err ).To (Succeed ())
128
134
129
- _ , err = secretInformer .Lister ().Secrets (secretNamespace ).Get (secretName )
135
+ _ , err = secretInformer .Lister ().Secrets (namespace ).Get (secretName )
130
136
Expect (err ).To (Succeed ())
131
137
132
- _ , err = fakeClientset .CoreV1 ().ConfigMaps (secretNamespace ).Get (context .TODO (), cmName , metav1.GetOptions {})
138
+ _ , err = fakeClientset .CoreV1 ().ConfigMaps (namespace ).Get (context .TODO (), cmName , metav1.GetOptions {})
133
139
Expect (err ).To (Succeed ())
134
140
135
- _ , err = cmInformer .Lister ().ConfigMaps (secretNamespace ).Get (cmName )
141
+ _ , err = cmInformer .Lister ().ConfigMaps (namespace ).Get (cmName )
136
142
Expect (err ).To (Succeed ())
137
143
})
138
144
It ("must get management endpoint" , func () {
0 commit comments