MCPcopy
hub / github.com/operator-framework/operator-sdk / NewWatchedSecrets

Function NewWatchedSecrets

internal/helm/client/secrets_watch.go:130–161  ·  view source on GitHub ↗
(clientSet kubernetes.Interface, namespace string)

Source from the content-addressed store, hash-verified

128var _ typedcorev1.SecretInterface = &WatchedSecrets{}
129
130func NewWatchedSecrets(clientSet kubernetes.Interface, namespace string) *WatchedSecrets {
131 log.V(2).Info("Get secrets client", "namespace", namespace)
132
133 helmListOptionsTweaker := func(options *metav1.ListOptions) {
134 labelSelector, err := labels.Parse(options.LabelSelector)
135 if err != nil {
136 log.Info("Could not parse labelSelector", "labelSelector", options.LabelSelector)
137 panic("could not parse labelSelector")
138 }
139
140 ownerLabelSelector, hasOwnerLabelSelector := labelSelector.RequiresExactMatch(helmSecretsLabelKey)
141
142 if !hasOwnerLabelSelector || ownerLabelSelector != helmSecretsLabelValue {
143 helmRequirement, _ := labels.NewRequirement(
144 "owner", selection.Equals, []string{helmSecretsLabelValue},
145 )
146 labelSelectorWithOwner := labelSelector.Add(*helmRequirement)
147 options.LabelSelector = labelSelectorWithOwner.String()
148 }
149 }
150
151 informerFactory := informers.NewSharedInformerFactoryWithOptions(clientSet, time.Second*30, informers.WithNamespace(namespace), informers.WithTweakListOptions(helmListOptionsTweaker))
152 secretsInformer := informerFactory.Core().V1().Secrets()
153
154 informerSecretsLister := secretsInformer.Lister().Secrets(namespace)
155
156 return &WatchedSecrets{
157 inner: clientSet.CoreV1().Secrets(namespace),
158 informerFactory: informerFactory,
159 informerLister: informerSecretsLister,
160 }
161}
162
163func (w *WatchedSecrets) Run() {
164 w.informerFactory.Start(wait.NeverStop)

Callers 1

Calls 1

StringMethod · 0.45

Tested by

no test coverage detected