/
cachedimage_utils.go
41 lines (33 loc) · 1.02 KB
/
cachedimage_utils.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package v1alpha1
import (
"context"
"github.com/distribution/reference"
"github.com/enix/kube-image-keeper/internal/registry"
corev1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"
)
func (r *CachedImage) Repository() (reference.Named, error) {
named, err := reference.ParseNormalizedNamed(r.Spec.SourceImage)
if err != nil {
return nil, err
}
return named, nil
}
func (r *CachedImage) GetPullSecrets(apiReader client.Reader) ([]corev1.Secret, error) {
named, err := r.Repository()
if err != nil {
return nil, err
}
repository := Repository{}
err = apiReader.Get(context.TODO(), types.NamespacedName{Name: registry.SanitizeName(named.Name())}, &repository)
if err != nil && !apierrors.IsNotFound(err) {
return nil, err
}
pullSecrets, err := registry.GetPullSecrets(apiReader, repository.Spec.PullSecretsNamespace, repository.Spec.PullSecretNames)
if err != nil {
return nil, err
}
return pullSecrets, nil
}