Skip to content

Commit 158e281

Browse files
authored
Merge pull request #7859 from omerap12/comment-flake-test
comment out TestUnchangedCAReloader test (flake)
2 parents 0ebb240 + 81d27d4 commit 158e281

File tree

1 file changed

+117
-116
lines changed

1 file changed

+117
-116
lines changed

vertical-pod-autoscaler/pkg/admission-controller/certs_test.go

+117-116
Original file line numberDiff line numberDiff line change
@@ -276,119 +276,120 @@ func TestChangedCAReloader(t *testing.T) {
276276
assert.NotEqual(t, oldCAEncodedString, newCAEncodedString, "expected CA to change")
277277
}
278278

279-
func TestUnchangedCAReloader(t *testing.T) {
280-
tempDir := t.TempDir()
281-
caCert := &x509.Certificate{
282-
SerialNumber: big.NewInt(0),
283-
Subject: pkix.Name{
284-
Organization: []string{"ca"},
285-
},
286-
NotBefore: time.Now(),
287-
NotAfter: time.Now().AddDate(2, 0, 0),
288-
IsCA: true,
289-
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth, x509.ExtKeyUsageServerAuth},
290-
KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,
291-
BasicConstraintsValid: true,
292-
}
293-
caKey, err := rsa.GenerateKey(rand.Reader, 4096)
294-
if err != nil {
295-
t.Error(err)
296-
}
297-
caBytes, err := x509.CreateCertificate(rand.Reader, caCert, caCert, &caKey.PublicKey, caKey)
298-
if err != nil {
299-
t.Error(err)
300-
}
301-
caPath := path.Join(tempDir, "ca.crt")
302-
caFile, err := os.Create(caPath)
303-
if err != nil {
304-
t.Error(err)
305-
}
306-
err = pem.Encode(caFile, &pem.Block{
307-
Type: "CERTIFICATE",
308-
Bytes: caBytes,
309-
})
310-
if err != nil {
311-
t.Error(err)
312-
}
313-
314-
testClientSet := fake.NewSimpleClientset()
315-
316-
selfRegistration(
317-
testClientSet,
318-
readFile(caPath),
319-
0*time.Second,
320-
"default",
321-
"vpa-service",
322-
"http://example.com/",
323-
true,
324-
int32(32),
325-
"",
326-
[]string{},
327-
false,
328-
"key1:value1,key2:value2",
329-
)
330-
331-
webhookConfigInterface := testClientSet.AdmissionregistrationV1().MutatingWebhookConfigurations()
332-
oldWebhookConfig, err := webhookConfigInterface.Get(context.TODO(), webhookConfigName, metav1.GetOptions{})
333-
if err != nil {
334-
t.Error(err)
335-
}
336-
337-
assert.Len(t, oldWebhookConfig.Webhooks, 1, "expected one webhook configuration")
338-
webhook := oldWebhookConfig.Webhooks[0]
339-
oldWebhookCABundle := webhook.ClientConfig.CABundle
340-
341-
var reloadWebhookCACalled, patchCalled atomic.Bool
342-
reloadWebhookCACalled.Store(false)
343-
patchCalled.Store(false)
344-
testClientSet.PrependReactor("get", "mutatingwebhookconfigurations", func(action k8stesting.Action) (bool, runtime.Object, error) {
345-
reloadWebhookCACalled.Store(true)
346-
return false, nil, nil
347-
})
348-
testClientSet.PrependReactor("patch", "mutatingwebhookconfigurations", func(action k8stesting.Action) (bool, runtime.Object, error) {
349-
patchCalled.Store(true)
350-
return false, nil, nil
351-
})
352-
353-
reloader := certReloader{
354-
clientCaPath: caPath,
355-
mutatingWebhookClient: testClientSet.AdmissionregistrationV1().MutatingWebhookConfigurations(),
356-
}
357-
stop := make(chan struct{})
358-
defer close(stop)
359-
if err := reloader.start(stop); err != nil {
360-
t.Error(err)
361-
}
362-
363-
originalCaFile, err := os.ReadFile(caPath)
364-
if err != nil {
365-
t.Error(err)
366-
}
367-
err = os.WriteFile(caPath, originalCaFile, 0666)
368-
if err != nil {
369-
t.Error(err)
370-
}
371-
372-
oldCAEncodedString := base64.StdEncoding.EncodeToString(oldWebhookCABundle)
373-
374-
for tries := 0; tries < 10; tries++ {
375-
if reloadWebhookCACalled.Load() {
376-
break
377-
}
378-
time.Sleep(1 * time.Second)
379-
}
380-
if !reloadWebhookCACalled.Load() {
381-
t.Error("expected reloadWebhookCA to be called")
382-
}
383-
384-
assert.False(t, patchCalled.Load(), "expected patch to not be called")
385-
386-
newWebhookConfig, err := webhookConfigInterface.Get(context.TODO(), webhookConfigName, metav1.GetOptions{})
387-
assert.Nil(t, err, "expected no error")
388-
assert.NotNil(t, newWebhookConfig, "expected webhook configuration")
389-
assert.Len(t, newWebhookConfig.Webhooks, 1, "expected one webhook configuration")
390-
391-
newWebhookCABundle := newWebhookConfig.Webhooks[0].ClientConfig.CABundle
392-
newCAEncodedString := base64.StdEncoding.EncodeToString(newWebhookCABundle)
393-
assert.Equal(t, oldCAEncodedString, newCAEncodedString, "expected CA to not change")
394-
}
279+
// TODO(omerap12): Temporary workaround for flakiness (#7831)
280+
// func TestUnchangedCAReloader(t *testing.T) {
281+
// tempDir := t.TempDir()
282+
// caCert := &x509.Certificate{
283+
// SerialNumber: big.NewInt(0),
284+
// Subject: pkix.Name{
285+
// Organization: []string{"ca"},
286+
// },
287+
// NotBefore: time.Now(),
288+
// NotAfter: time.Now().AddDate(2, 0, 0),
289+
// IsCA: true,
290+
// ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth, x509.ExtKeyUsageServerAuth},
291+
// KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,
292+
// BasicConstraintsValid: true,
293+
// }
294+
// caKey, err := rsa.GenerateKey(rand.Reader, 4096)
295+
// if err != nil {
296+
// t.Error(err)
297+
// }
298+
// caBytes, err := x509.CreateCertificate(rand.Reader, caCert, caCert, &caKey.PublicKey, caKey)
299+
// if err != nil {
300+
// t.Error(err)
301+
// }
302+
// caPath := path.Join(tempDir, "ca.crt")
303+
// caFile, err := os.Create(caPath)
304+
// if err != nil {
305+
// t.Error(err)
306+
// }
307+
// err = pem.Encode(caFile, &pem.Block{
308+
// Type: "CERTIFICATE",
309+
// Bytes: caBytes,
310+
// })
311+
// if err != nil {
312+
// t.Error(err)
313+
// }
314+
315+
// testClientSet := fake.NewSimpleClientset()
316+
317+
// selfRegistration(
318+
// testClientSet,
319+
// readFile(caPath),
320+
// 0*time.Second,
321+
// "default",
322+
// "vpa-service",
323+
// "http://example.com/",
324+
// true,
325+
// int32(32),
326+
// "",
327+
// []string{},
328+
// false,
329+
// "key1:value1,key2:value2",
330+
// )
331+
332+
// webhookConfigInterface := testClientSet.AdmissionregistrationV1().MutatingWebhookConfigurations()
333+
// oldWebhookConfig, err := webhookConfigInterface.Get(context.TODO(), webhookConfigName, metav1.GetOptions{})
334+
// if err != nil {
335+
// t.Error(err)
336+
// }
337+
338+
// assert.Len(t, oldWebhookConfig.Webhooks, 1, "expected one webhook configuration")
339+
// webhook := oldWebhookConfig.Webhooks[0]
340+
// oldWebhookCABundle := webhook.ClientConfig.CABundle
341+
342+
// var reloadWebhookCACalled, patchCalled atomic.Bool
343+
// reloadWebhookCACalled.Store(false)
344+
// patchCalled.Store(false)
345+
// testClientSet.PrependReactor("get", "mutatingwebhookconfigurations", func(action k8stesting.Action) (bool, runtime.Object, error) {
346+
// reloadWebhookCACalled.Store(true)
347+
// return false, nil, nil
348+
// })
349+
// testClientSet.PrependReactor("patch", "mutatingwebhookconfigurations", func(action k8stesting.Action) (bool, runtime.Object, error) {
350+
// patchCalled.Store(true)
351+
// return false, nil, nil
352+
// })
353+
354+
// reloader := certReloader{
355+
// clientCaPath: caPath,
356+
// mutatingWebhookClient: testClientSet.AdmissionregistrationV1().MutatingWebhookConfigurations(),
357+
// }
358+
// stop := make(chan struct{})
359+
// defer close(stop)
360+
// if err := reloader.start(stop); err != nil {
361+
// t.Error(err)
362+
// }
363+
364+
// originalCaFile, err := os.ReadFile(caPath)
365+
// if err != nil {
366+
// t.Error(err)
367+
// }
368+
// err = os.WriteFile(caPath, originalCaFile, 0666)
369+
// if err != nil {
370+
// t.Error(err)
371+
// }
372+
373+
// oldCAEncodedString := base64.StdEncoding.EncodeToString(oldWebhookCABundle)
374+
375+
// for tries := 0; tries < 10; tries++ {
376+
// if reloadWebhookCACalled.Load() {
377+
// break
378+
// }
379+
// time.Sleep(1 * time.Second)
380+
// }
381+
// if !reloadWebhookCACalled.Load() {
382+
// t.Error("expected reloadWebhookCA to be called")
383+
// }
384+
385+
// assert.False(t, patchCalled.Load(), "expected patch to not be called")
386+
387+
// newWebhookConfig, err := webhookConfigInterface.Get(context.TODO(), webhookConfigName, metav1.GetOptions{})
388+
// assert.Nil(t, err, "expected no error")
389+
// assert.NotNil(t, newWebhookConfig, "expected webhook configuration")
390+
// assert.Len(t, newWebhookConfig.Webhooks, 1, "expected one webhook configuration")
391+
392+
// newWebhookCABundle := newWebhookConfig.Webhooks[0].ClientConfig.CABundle
393+
// newCAEncodedString := base64.StdEncoding.EncodeToString(newWebhookCABundle)
394+
// assert.Equal(t, oldCAEncodedString, newCAEncodedString, "expected CA to not change")
395+
// }

0 commit comments

Comments
 (0)