@@ -2,12 +2,15 @@ package nodekubeconfigcontroller
22
33import (
44 "context"
5+ "encoding/base64"
6+ "fmt"
57 "testing"
68
79 "github.com/google/go-cmp/cmp"
810 "github.com/openshift/api/annotations"
911 configv1 "github.com/openshift/api/config/v1"
1012 configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
13+ "github.com/openshift/library-go/pkg/operator/certrotation"
1114 "github.com/openshift/library-go/pkg/operator/events"
1215 corev1 "k8s.io/api/core/v1"
1316 apiequality "k8s.io/apimachinery/pkg/api/equality"
@@ -85,7 +88,34 @@ func (l *secretLister) Get(name string) (*corev1.Secret, error) {
8588 return l .client .CoreV1 ().Secrets (l .namespace ).Get (context .Background (), name , metav1.GetOptions {})
8689}
8790
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-----` // notsecret
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+
88116func TestEnsureNodeKubeconfigs (t * testing.T ) {
117+ publicKeyBase64 := base64 .StdEncoding .EncodeToString ([]byte (publicKey ))
118+ privateKeyBase64 := base64 .StdEncoding .EncodeToString ([]byte (privateKey ))
89119 tt := []struct {
90120 name string
91121 existingObjects []runtime.Object
@@ -111,8 +141,8 @@ func TestEnsureNodeKubeconfigs(t *testing.T) {
111141 Name : "node-system-admin-client" ,
112142 },
113143 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 ),
116146 },
117147 },
118148 },
@@ -143,11 +173,13 @@ func TestEnsureNodeKubeconfigs(t *testing.T) {
143173 Namespace : "openshift-kube-apiserver" ,
144174 Name : "node-kubeconfigs" ,
145175 Annotations : map [string ]string {
146- annotations .OpenShiftComponent : "kube-apiserver" ,
176+ annotations .OpenShiftComponent : "kube-apiserver" ,
177+ certrotation .CertificateNotBeforeAnnotation : certNotBefore ,
178+ certrotation .CertificateNotAfterAnnotation : certNotAfter ,
147179 },
148180 },
149181 Data : map [string ][]byte {
150- "localhost.kubeconfig" : []byte (`apiVersion: v1
182+ "localhost.kubeconfig" : []byte (fmt . Sprintf ( `apiVersion: v1
151183kind: Config
152184clusters:
153185- cluster:
@@ -163,10 +195,10 @@ current-context: system:admin
163195users:
164196- name: system:admin
165197 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
170202kind: Config
171203clusters:
172204- cluster:
@@ -183,10 +215,10 @@ current-context: system:admin
183215users:
184216- name: system:admin
185217 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
190222kind: Config
191223clusters:
192224- cluster:
@@ -202,10 +234,10 @@ current-context: system:admin
202234users:
203235- name: system:admin
204236 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
209241kind: Config
210242clusters:
211243- cluster:
@@ -221,9 +253,9 @@ current-context: system:admin
221253users:
222254- name: system:admin
223255 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 ) ),
227259 },
228260 },
229261 },
0 commit comments