@@ -12,55 +12,57 @@ import (
12
12
"github.com/openshift/library-go/pkg/operator/resourcesynccontroller"
13
13
)
14
14
15
- func (c * authOperator ) handleConfigSync (data * configSyncData ) ([]string , error ) {
16
- // TODO we probably need listers
17
- configMapClient := c .configMaps .ConfigMaps (targetNamespace )
18
- secretClient := c .secrets .Secrets (targetNamespace )
15
+ func (c * authOperator ) handleConfigSync (data * configSyncData ) error {
16
+ // TODO this has too much boilerplate
19
17
20
- configMaps , err := configMapClient .List (metav1.ListOptions {})
21
- if err != nil {
22
- return nil , fmt .Errorf ("error listing configMaps: %v" , err )
18
+ inUseConfigMapNames := sets .NewString ()
19
+ inUseSecretNames := sets .NewString ()
20
+
21
+ for _ , dest := range sets .StringKeySet (data .idpConfigMaps ).List () {
22
+ syncOrDie (c .resourceSyncer .SyncConfigMap , dest , data .idpConfigMaps [dest ].src )
23
+ inUseConfigMapNames .Insert (dest )
24
+ }
25
+ for _ , dest := range sets .StringKeySet (data .idpSecrets ).List () {
26
+ syncOrDie (c .resourceSyncer .SyncSecret , dest , data .idpSecrets [dest ].src )
27
+ inUseSecretNames .Insert (dest )
28
+ }
29
+ for _ , dest := range sets .StringKeySet (data .tplSecrets ).List () {
30
+ syncOrDie (c .resourceSyncer .SyncSecret , dest , data .tplSecrets [dest ].src )
31
+ inUseSecretNames .Insert (dest )
23
32
}
24
33
25
- secrets , err := secretClient .List (metav1.ListOptions {})
34
+ // TODO we probably need listers
35
+
36
+ configMaps , err := c .configMaps .ConfigMaps (targetNamespace ).List (metav1.ListOptions {})
26
37
if err != nil {
27
- return nil , fmt . Errorf ( "error listing secrets: %v" , err )
38
+ return err
28
39
}
29
-
40
+ configMapNames := sets . NewString ()
30
41
prefixConfigMapNames := sets .NewString ()
31
- prefixSecretNames := sets .NewString ()
32
- resourceVersionsAll := map [string ]string {}
33
-
34
- // TODO this has too much boilerplate
35
-
36
42
for _ , cm := range configMaps .Items {
43
+ configMapNames .Insert (cm .Name )
37
44
if strings .HasPrefix (cm .Name , userConfigPrefix ) {
38
45
prefixConfigMapNames .Insert (cm .Name )
39
- resourceVersionsAll [cm .Name ] = cm .GetResourceVersion ()
40
46
}
41
47
}
48
+ if ! configMapNames .IsSuperset (inUseConfigMapNames ) {
49
+ return fmt .Errorf ("config maps %s in %s not synced" , inUseConfigMapNames .Difference (configMapNames ).List (), targetNamespace )
50
+ }
42
51
52
+ secrets , err := c .secrets .Secrets (targetNamespace ).List (metav1.ListOptions {})
53
+ if err != nil {
54
+ return err
55
+ }
56
+ secretNames := sets .NewString ()
57
+ prefixSecretNames := sets .NewString ()
43
58
for _ , secret := range secrets .Items {
59
+ secretNames .Insert (secret .Name )
44
60
if strings .HasPrefix (secret .Name , userConfigPrefix ) {
45
61
prefixSecretNames .Insert (secret .Name )
46
- resourceVersionsAll [secret .Name ] = secret .GetResourceVersion ()
47
62
}
48
63
}
49
-
50
- inUseConfigMapNames := sets .NewString ()
51
- inUseSecretNames := sets .NewString ()
52
-
53
- for dest , src := range data .idpConfigMaps {
54
- syncOrDie (c .resourceSyncer .SyncConfigMap , dest , src .src )
55
- inUseConfigMapNames .Insert (dest )
56
- }
57
- for dest , src := range data .idpSecrets {
58
- syncOrDie (c .resourceSyncer .SyncSecret , dest , src .src )
59
- inUseSecretNames .Insert (dest )
60
- }
61
- for dest , src := range data .tplSecrets {
62
- syncOrDie (c .resourceSyncer .SyncSecret , dest , src .src )
63
- inUseSecretNames .Insert (dest )
64
+ if ! secretNames .IsSuperset (inUseSecretNames ) {
65
+ return fmt .Errorf ("secrets %s in %s not synced" , inUseSecretNames .Difference (secretNames ).List (), targetNamespace )
64
66
}
65
67
66
68
notInUseConfigMapNames := prefixConfigMapNames .Difference (inUseConfigMapNames )
@@ -76,18 +78,7 @@ func (c *authOperator) handleConfigSync(data *configSyncData) ([]string, error)
76
78
syncOrDie (c .resourceSyncer .SyncSecret , dest , "" )
77
79
}
78
80
79
- // only get the resource versions of the elements in use
80
- var resourceVersionsInUse []string
81
-
82
- for name := range inUseConfigMapNames {
83
- resourceVersionsInUse = append (resourceVersionsInUse , resourceVersionsAll [name ])
84
- }
85
-
86
- for name := range inUseSecretNames {
87
- resourceVersionsInUse = append (resourceVersionsInUse , resourceVersionsAll [name ])
88
- }
89
-
90
- return resourceVersionsInUse , nil
81
+ return nil
91
82
}
92
83
93
84
type configSyncData struct {
0 commit comments