@@ -12,6 +12,14 @@ import (
12
12
"github.com/openshift/library-go/pkg/operator/resourcesynccontroller"
13
13
)
14
14
15
+ type SyncResourceType string
16
+
17
+ const (
18
+ oauthConfigSyncType SyncResourceType = "oauthconfig"
19
+ metadataSyncType SyncResourceType = "oauthmetadata"
20
+ removeSyncType SyncResourceType = "removethisdata"
21
+ )
22
+
15
23
func (c * authOperator ) handleConfigSync (data * configSyncData ) ([]string , error ) {
16
24
// TODO handle OAuthTemplates
17
25
@@ -53,15 +61,15 @@ func (c *authOperator) handleConfigSync(data *configSyncData) ([]string, error)
53
61
inUseSecretNames := sets .NewString ()
54
62
55
63
for dest , src := range data .idpConfigMaps {
56
- syncOrDie (c .resourceSyncer .SyncConfigMap , dest , src .src )
64
+ syncOrDie (c .resourceSyncer .SyncConfigMap , oauthConfigSyncType , dest , src .src )
57
65
inUseConfigMapNames .Insert (dest )
58
66
}
59
67
for dest , src := range data .idpSecrets {
60
- syncOrDie (c .resourceSyncer .SyncSecret , dest , src .src )
68
+ syncOrDie (c .resourceSyncer .SyncSecret , oauthConfigSyncType , dest , src .src )
61
69
inUseSecretNames .Insert (dest )
62
70
}
63
71
for dest , src := range data .tplSecrets {
64
- syncOrDie (c .resourceSyncer .SyncSecret , dest , src .src )
72
+ syncOrDie (c .resourceSyncer .SyncSecret , oauthConfigSyncType , dest , src .src )
65
73
inUseSecretNames .Insert (dest )
66
74
}
67
75
@@ -72,10 +80,10 @@ func (c *authOperator) handleConfigSync(data *configSyncData) ([]string, error)
72
80
// it does not really matter, we are talking as worse case of
73
81
// a few unneeded strings and a few unnecessary deletes
74
82
for dest := range notInUseConfigMapNames {
75
- syncOrDie (c .resourceSyncer .SyncConfigMap , dest , "" )
83
+ syncOrDie (c .resourceSyncer .SyncConfigMap , removeSyncType , dest , "" )
76
84
}
77
85
for dest := range notInUseSecretNames {
78
- syncOrDie (c .resourceSyncer .SyncSecret , dest , "" )
86
+ syncOrDie (c .resourceSyncer .SyncSecret , removeSyncType , dest , "" )
79
87
}
80
88
81
89
// only get the resource versions of the elements in use
@@ -88,6 +96,8 @@ func (c *authOperator) handleConfigSync(data *configSyncData) ([]string, error)
88
96
resourceVersionsInUse = append (resourceVersionsInUse , resourceVersionsAll [name ])
89
97
}
90
98
99
+ syncOrDie (c .resourceSyncer .SyncConfigMap , metadataSyncType , oauthMetadataName , targetName )
100
+
91
101
return resourceVersionsInUse , nil
92
102
}
93
103
@@ -243,18 +253,30 @@ func getTemplatePath(name, key string) string {
243
253
return fmt .Sprintf ("%s/%s/%s" , userConfigPathPrefixTemplate , name , key )
244
254
}
245
255
246
- func syncOrDie (syncFunc func (dest , src resourcesynccontroller.ResourceLocation ) error , dest , src string ) {
247
- ns := userConfigNamespace
248
- if len (src ) == 0 { // handle delete
249
- ns = ""
256
+ func syncOrDie (syncFunc func (dest , src resourcesynccontroller.ResourceLocation ) error , t SyncResourceType , dest , src string ) {
257
+ var srcNs , destNs string
258
+
259
+ switch t {
260
+ case oauthConfigSyncType :
261
+ srcNs = userConfigNamespace
262
+ destNs = targetName
263
+ case metadataSyncType :
264
+ srcNs = targetName
265
+ destNs = machineConfigNamespace
266
+ case removeSyncType :
267
+ srcNs = ""
268
+ destNs = targetName
269
+ default :
270
+ panic ("Unknown config sync type" )
250
271
}
272
+
251
273
if err := syncFunc (
252
274
resourcesynccontroller.ResourceLocation {
253
- Namespace : targetName ,
275
+ Namespace : destNs ,
254
276
Name : dest ,
255
277
},
256
278
resourcesynccontroller.ResourceLocation {
257
- Namespace : ns ,
279
+ Namespace : srcNs ,
258
280
Name : src ,
259
281
},
260
282
); err != nil {
0 commit comments