MCPcopy
hub / github.com/helm/helm / Query

Method Query

pkg/storage/driver/secrets.go:124–159  ·  view source on GitHub ↗

Query fetches all releases that match the provided map of labels. An error is returned if the secret fails to retrieve the releases.

(labels map[string]string)

Source from the content-addressed store, hash-verified

122// Query fetches all releases that match the provided map of labels.
123// An error is returned if the secret fails to retrieve the releases.
124func (secrets *Secrets) Query(labels map[string]string) ([]release.Releaser, error) {
125 ls := kblabels.Set{}
126 for k, v := range labels {
127 if errs := validation.IsValidLabelValue(v); len(errs) != 0 {
128 return nil, fmt.Errorf("invalid label value: %q: %s", v, strings.Join(errs, "; "))
129 }
130 ls[k] = v
131 }
132
133 opts := metav1.ListOptions{LabelSelector: ls.AsSelector().String()}
134
135 list, err := secrets.impl.List(context.Background(), opts)
136 if err != nil {
137 return nil, fmt.Errorf("query: failed to query with labels: %w", err)
138 }
139
140 if len(list.Items) == 0 {
141 return nil, ErrReleaseNotFound
142 }
143
144 var results []release.Releaser
145 for _, item := range list.Items {
146 rls, err := decodeRelease(string(item.Data["release"]))
147 if err != nil {
148 secrets.Logger().Debug(
149 "failed to decode release",
150 slog.String("key", item.Name),
151 slog.Any("error", err),
152 )
153 continue
154 }
155 rls.Labels = item.Labels
156 results = append(results, rls)
157 }
158 return results, nil
159}
160
161// Create creates a new Secret holding the release. If the
162// Secret already exists, ErrReleaseExists is returned.

Callers

nothing calls this directly

Calls 4

decodeReleaseFunction · 0.85
ListMethod · 0.65
LoggerMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected