mirror of
https://github.com/replicatedhq/troubleshoot.git
synced 2026-02-14 18:29:53 +00:00
* Add dry-run flag * No traces on dry run * More refactoring * More updates to support bundle binary * More refactoring changes * Different approach of loading specs from URIs * Self review * More changes after review and testing * fix how we parse oci image uri * Remove unnecessary comment * Add missing file * Fix failing tests * Better error check for no collectors * Add default collectors when parsing support bundle specs * Add missed test fixture * Download specs with correct headers * Fix typo
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package specs
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/pkg/errors"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
"k8s.io/client-go/kubernetes"
|
|
"k8s.io/klog/v2"
|
|
)
|
|
|
|
func LoadFromSecret(ctx context.Context, client kubernetes.Interface, ns string, name string) (map[string][]byte, error) {
|
|
foundSecret, err := client.CoreV1().Secrets(ns).Get(ctx, name, metav1.GetOptions{})
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to get secret")
|
|
}
|
|
|
|
return foundSecret.Data, nil
|
|
}
|
|
|
|
func LoadFromSecretMatchingLabel(ctx context.Context, client kubernetes.Interface, label string, ns string, key string) ([]string, error) {
|
|
var secretsMatchingKey []string
|
|
|
|
secrets, err := client.CoreV1().Secrets(ns).List(ctx, metav1.ListOptions{LabelSelector: label})
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to search for secrets in the cluster")
|
|
}
|
|
|
|
for _, secret := range secrets.Items {
|
|
spec, ok := secret.Data[key]
|
|
if !ok {
|
|
continue
|
|
}
|
|
|
|
klog.V(1).InfoS("Loaded spec from secret", "name", secret.Name,
|
|
"namespace", secret.Namespace, "data key", key, "label selector", label,
|
|
)
|
|
secretsMatchingKey = append(secretsMatchingKey, string(spec))
|
|
}
|
|
|
|
return secretsMatchingKey, nil
|
|
}
|