@@ -34,6 +34,8 @@ import (
34
34
type ReconcilerConfig struct {
35
35
TrustDomainClient spireapi.TrustDomainClient
36
36
K8sClient client.Client
37
+ ClassName string
38
+ WatchClassless bool
37
39
38
40
// GCInterval how long to sit idle (i.e. untriggered) before doing
39
41
// another reconcile.
@@ -44,23 +46,27 @@ func Reconciler(config ReconcilerConfig) reconciler.Reconciler {
44
46
return reconciler .New (reconciler.Config {
45
47
Kind : "federation relationship" ,
46
48
Reconcile : func (ctx context.Context ) {
47
- Reconcile (ctx , config .TrustDomainClient , config .K8sClient )
49
+ Reconcile (ctx , config .TrustDomainClient , config .K8sClient , config . ClassName , config . WatchClassless )
48
50
},
49
51
GCInterval : config .GCInterval ,
50
52
})
51
53
}
52
54
53
- func Reconcile (ctx context.Context , trustDomainClient spireapi.TrustDomainClient , k8sClient client.Client ) {
55
+ func Reconcile (ctx context.Context , trustDomainClient spireapi.TrustDomainClient , k8sClient client.Client , className string , watchClassless bool ) {
54
56
r := & federationRelationshipReconciler {
55
57
trustDomainClient : trustDomainClient ,
56
58
k8sClient : k8sClient ,
59
+ className : className ,
60
+ watchClassless : watchClassless ,
57
61
}
58
62
r .reconcile (ctx )
59
63
}
60
64
61
65
type federationRelationshipReconciler struct {
62
66
trustDomainClient spireapi.TrustDomainClient
63
67
k8sClient client.Client
68
+ className string
69
+ watchClassless bool
64
70
}
65
71
66
72
func (r * federationRelationshipReconciler ) reconcile (ctx context.Context ) {
@@ -110,6 +116,10 @@ func (r *federationRelationshipReconciler) reconcile(ctx context.Context) {
110
116
// TODO: Status updates
111
117
}
112
118
119
+ func (r * federationRelationshipReconciler ) reconcileClass (className string ) bool {
120
+ return (className == "" && r .watchClassless ) || className == r .className
121
+ }
122
+
113
123
func (r * federationRelationshipReconciler ) listFederationRelationships (ctx context.Context ) (map [spiffeid.TrustDomain ]spireapi.FederationRelationship , error ) {
114
124
federationRelationships , err := r .trustDomainClient .ListFederationRelationships (ctx )
115
125
if err != nil {
@@ -138,6 +148,9 @@ func (r *federationRelationshipReconciler) listClusterFederatedTrustDomains(ctx
138
148
139
149
out := make (map [spiffeid.TrustDomain ]* clusterFederatedTrustDomainState , len (clusterFederatedTrustDomains ))
140
150
for i := range clusterFederatedTrustDomains {
151
+ if ! (r .reconcileClass (clusterFederatedTrustDomains [i ].Spec .ClassName )) {
152
+ continue
153
+ }
141
154
log := log .WithValues (clusterFederatedTrustDomainLogKey , objectName (& clusterFederatedTrustDomains [i ]))
142
155
143
156
federationRelationship , err := spirev1alpha1 .ParseClusterFederatedTrustDomainSpec (& clusterFederatedTrustDomains [i ].Spec )
0 commit comments