@@ -2,12 +2,15 @@ package nodekubeconfigcontroller
2
2
3
3
import (
4
4
"context"
5
+ "encoding/base64"
6
+ "fmt"
5
7
"testing"
6
8
7
9
"github.com/google/go-cmp/cmp"
8
10
"github.com/openshift/api/annotations"
9
11
configv1 "github.com/openshift/api/config/v1"
10
12
configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
13
+ "github.com/openshift/library-go/pkg/operator/certrotation"
11
14
"github.com/openshift/library-go/pkg/operator/events"
12
15
corev1 "k8s.io/api/core/v1"
13
16
apiequality "k8s.io/apimachinery/pkg/api/equality"
@@ -85,7 +88,34 @@ func (l *secretLister) Get(name string) (*corev1.Secret, error) {
85
88
return l .client .CoreV1 ().Secrets (l .namespace ).Get (context .Background (), name , metav1.GetOptions {})
86
89
}
87
90
91
+ const privateKey = `
92
+ -----BEGIN PRIVATE KEY-----
93
+ MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEArvkpSCWaStPfbYr4
94
+ cCJyv8pXWnJ4K22emSrYDNcp7Dm6qjtN/lsVNuGDyWyR4cUaJYXkaD2OrZiXDzzk
95
+ BZlS3QIDAQABAkA9BZhoGPUec5XQVk8ejGUIjkC4woM2YhyVvmNq1v8/6q6V+uPw
96
+ yDEfBMapuLVY+QhyVELXFOCHA5iKxrlFHZThAiEA1XA5mlbHtrJqEZ7yI5m6+Szj
97
+ 7YVzSkdSgfDZ//heAh8CIQDR3VbN9QmJRIM1yhIkP9BoWSxvXdH6QMXdC2X7Tkwj
98
+ gwIgcpbSxjLK/CIjYhx0oXpacIaSRCX+dKV//XVChPNh/T8CIQCSFscXZez2fhfs
99
+ eLb6PuXfzbuN5ryFvVM/VXDvaIi96wIgcHjUpONghaoA51XejMAxWanDiwAgRV5H
100
+ XNdFkBi4q7o=
101
+ -----END PRIVATE KEY-----`
102
+ const publicKey = `-----BEGIN CERTIFICATE-----
103
+ MIIBfzCCASmgAwIBAgIUEEUHu1PzqJCGQ63vxVokwBxGPYwwDQYJKoZIhvcNAQEL
104
+ BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI0MTEyNjA4NTA0NloXDTM0MTEy
105
+ NDA4NTA0NlowFDESMBAGA1UEAwwJbG9jYWxob3N0MFwwDQYJKoZIhvcNAQEBBQAD
106
+ SwAwSAJBAK75KUglmkrT322K+HAicr/KV1pyeCttnpkq2AzXKew5uqo7Tf5bFTbh
107
+ g8lskeHFGiWF5Gg9jq2Ylw885AWZUt0CAwEAAaNTMFEwHQYDVR0OBBYEFJna5Io+
108
+ idLKO73zypGl2itp92JUMB8GA1UdIwQYMBaAFJna5Io+idLKO73zypGl2itp92JU
109
+ MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADQQB71tlkWNFDvMRxtz+a
110
+ NYMU1thAVfVFciNXPS07tUduFSwVvYORUxx2w+5JfUdKu69hLpBFVPqvHQjPoQgc
111
+ vUBI
112
+ -----END CERTIFICATE-----`
113
+ const certNotBefore = "2024-11-26T08:50:46Z"
114
+ const certNotAfter = "2034-11-24T08:50:46Z"
115
+
88
116
func TestEnsureNodeKubeconfigs (t * testing.T ) {
117
+ publicKeyBase64 := base64 .StdEncoding .EncodeToString ([]byte (publicKey ))
118
+ privateKeyBase64 := base64 .StdEncoding .EncodeToString ([]byte (privateKey ))
89
119
tt := []struct {
90
120
name string
91
121
existingObjects []runtime.Object
@@ -111,8 +141,8 @@ func TestEnsureNodeKubeconfigs(t *testing.T) {
111
141
Name : "node-system-admin-client" ,
112
142
},
113
143
Data : map [string ][]byte {
114
- "tls.crt" : []byte ("system:admin certificate" ),
115
- "tls.key" : []byte ("system:admin key" ),
144
+ "tls.crt" : []byte (publicKey ),
145
+ "tls.key" : []byte (privateKey ),
116
146
},
117
147
},
118
148
},
@@ -143,11 +173,13 @@ func TestEnsureNodeKubeconfigs(t *testing.T) {
143
173
Namespace : "openshift-kube-apiserver" ,
144
174
Name : "node-kubeconfigs" ,
145
175
Annotations : map [string ]string {
146
- annotations .OpenShiftComponent : "kube-apiserver" ,
176
+ annotations .OpenShiftComponent : "kube-apiserver" ,
177
+ certrotation .CertificateNotBeforeAnnotation : certNotBefore ,
178
+ certrotation .CertificateNotAfterAnnotation : certNotAfter ,
147
179
},
148
180
},
149
181
Data : map [string ][]byte {
150
- "localhost.kubeconfig" : []byte (`apiVersion: v1
182
+ "localhost.kubeconfig" : []byte (fmt . Sprintf ( `apiVersion: v1
151
183
kind: Config
152
184
clusters:
153
185
- cluster:
@@ -163,10 +195,10 @@ current-context: system:admin
163
195
users:
164
196
- name: system:admin
165
197
user:
166
- client-certificate-data: c3lzdGVtOmFkbWluIGNlcnRpZmljYXRl
167
- client-key-data: c3lzdGVtOmFkbWluIGtleQ==
168
- ` ),
169
- "localhost-recovery.kubeconfig" : []byte (`apiVersion: v1
198
+ client-certificate-data: %s
199
+ client-key-data: %s
200
+ ` , publicKeyBase64 , privateKeyBase64 ) ),
201
+ "localhost-recovery.kubeconfig" : []byte (fmt . Sprintf ( `apiVersion: v1
170
202
kind: Config
171
203
clusters:
172
204
- cluster:
@@ -183,10 +215,10 @@ current-context: system:admin
183
215
users:
184
216
- name: system:admin
185
217
user:
186
- client-certificate-data: c3lzdGVtOmFkbWluIGNlcnRpZmljYXRl
187
- client-key-data: c3lzdGVtOmFkbWluIGtleQ==
188
- ` ),
189
- "lb-ext.kubeconfig" : []byte (`apiVersion: v1
218
+ client-certificate-data: %s
219
+ client-key-data: %s
220
+ ` , publicKeyBase64 , privateKeyBase64 ) ),
221
+ "lb-ext.kubeconfig" : []byte (fmt . Sprintf ( `apiVersion: v1
190
222
kind: Config
191
223
clusters:
192
224
- cluster:
@@ -202,10 +234,10 @@ current-context: system:admin
202
234
users:
203
235
- name: system:admin
204
236
user:
205
- client-certificate-data: c3lzdGVtOmFkbWluIGNlcnRpZmljYXRl
206
- client-key-data: c3lzdGVtOmFkbWluIGtleQ==
207
- ` ),
208
- "lb-int.kubeconfig" : []byte (`apiVersion: v1
237
+ client-certificate-data: %s
238
+ client-key-data: %s
239
+ ` , publicKeyBase64 , privateKeyBase64 ) ),
240
+ "lb-int.kubeconfig" : []byte (fmt . Sprintf ( `apiVersion: v1
209
241
kind: Config
210
242
clusters:
211
243
- cluster:
@@ -221,9 +253,9 @@ current-context: system:admin
221
253
users:
222
254
- name: system:admin
223
255
user:
224
- client-certificate-data: c3lzdGVtOmFkbWluIGNlcnRpZmljYXRl
225
- client-key-data: c3lzdGVtOmFkbWluIGtleQ==
226
- ` ),
256
+ client-certificate-data: %s
257
+ client-key-data: %s
258
+ ` , publicKeyBase64 , privateKeyBase64 ) ),
227
259
},
228
260
},
229
261
},
0 commit comments