Skip to content

Commit 02139c9

Browse files
committed
Deflake authz config reload test
1 parent 20d0ab7 commit 02139c9

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

test/integration/auth/authz_config_test.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func TestAuthzConfig(t *testing.T) {
5656

5757
dir := t.TempDir()
5858
configFileName := filepath.Join(dir, "config.yaml")
59-
if err := os.WriteFile(configFileName, []byte(`
59+
if err := atomicWriteFile(configFileName, []byte(`
6060
apiVersion: apiserver.config.k8s.io/v1alpha1
6161
kind: AuthorizationConfiguration
6262
authorizers:
@@ -362,7 +362,7 @@ users:
362362
}
363363

364364
configFileName := filepath.Join(dir, "config.yaml")
365-
if err := os.WriteFile(configFileName, []byte(`
365+
if err := atomicWriteFile(configFileName, []byte(`
366366
apiVersion: apiserver.config.k8s.io/v1alpha1
367367
kind: AuthorizationConfiguration
368368
authorizers:
@@ -583,7 +583,7 @@ authorizers:
583583
}
584584

585585
// write bogus file
586-
if err := os.WriteFile(configFileName, []byte(`apiVersion: apiserver.config.k8s.io`), os.FileMode(0644)); err != nil {
586+
if err := atomicWriteFile(configFileName, []byte(`apiVersion: apiserver.config.k8s.io`), os.FileMode(0644)); err != nil {
587587
t.Fatal(err)
588588
}
589589

@@ -635,7 +635,7 @@ authorizers:
635635
}
636636

637637
// write good config with different webhook
638-
if err := os.WriteFile(configFileName, []byte(`
638+
if err := atomicWriteFile(configFileName, []byte(`
639639
apiVersion: apiserver.config.k8s.io/v1beta1
640640
kind: AuthorizationConfiguration
641641
authorizers:
@@ -890,3 +890,11 @@ func getMetrics(t *testing.T, client *clientset.Clientset) (*metrics, error) {
890890
}
891891
return &m, nil
892892
}
893+
894+
func atomicWriteFile(name string, data []byte, perm os.FileMode) error {
895+
tmp := name + ".tmp"
896+
if err := os.WriteFile(tmp, data, perm); err != nil {
897+
return err
898+
}
899+
return os.Rename(tmp, name)
900+
}

0 commit comments

Comments
 (0)