Skip to content

Commit

Permalink
Merge pull request #7 from prune998/prune/matchselector
Browse files Browse the repository at this point in the history
secret update reconciliation support matchSelector
  • Loading branch information
prune998 committed Dec 4, 2018
2 parents 6e2c04b + b7f8029 commit 20ed30c
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions pkg/controller/certmerge/certmerge_controller.go
Expand Up @@ -196,18 +196,22 @@ func secretInCertMergeList(certmerge *certmergev1alpha1.CertMerge, secret *corev
func secretInCertMergeLabels(certmerge *certmergev1alpha1.CertMerge, secret *corev1.Secret) bool {
// check if secret labels match a CertMerge Selector
for _, se := range certmerge.Spec.Selector {
isOk := false
if se.Namespace == secret.Namespace {
for key, val := range se.LabelSelector.MatchLabels {
if value, ok := secret.Labels[key]; ok {
if value == val {
isOk = true
}

// create the labelSelector
labelSelector := labels.SelectorFromSet(se.LabelSelector.MatchLabels)
for _, r := range se.LabelSelector.MatchExpressions {
req, err := labels.NewRequirement(r.Key, selection.Operator(r.Operator), r.Values)
if err != nil {
return false
}
labelSelector = labelSelector.Add(*req)
}

// make this secret as selected if it matches
if labelSelector.Matches(labels.Set(secret.ObjectMeta.Labels)) {
return true
}
}
if isOk {
return true
}
}
return false
Expand Down

0 comments on commit 20ed30c

Please sign in to comment.