Skip to content

Commit

Permalink
PullSecretsNames renamed to PullSecretNames
Browse files Browse the repository at this point in the history
  • Loading branch information
aorcholski committed Jul 9, 2024
1 parent e25fb7f commit 3b7f99c
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 30 deletions.
6 changes: 3 additions & 3 deletions pkg/api/v1beta2/dynakube/properties.go
Original file line number Diff line number Diff line change
Expand Up @@ -211,8 +211,8 @@ func (dk *DynaKube) PullSecretName() string {
return dk.Name + PullSecretSuffix
}

// PullSecretsNames returns the names of the pull secrets to be used for immutable images.
func (dk *DynaKube) PullSecretsNames() []string {
// PullSecretNames returns the names of the pull secrets to be used for immutable images.
func (dk *DynaKube) PullSecretNames() []string {
names := []string{
dk.Name + PullSecretSuffix,
}
Expand All @@ -225,7 +225,7 @@ func (dk *DynaKube) PullSecretsNames() []string {

func (dk *DynaKube) ImagePullSecretReferences() []corev1.LocalObjectReference {
imagePullSecrets := make([]corev1.LocalObjectReference, 0)
for _, pullSecretName := range dk.PullSecretsNames() {
for _, pullSecretName := range dk.PullSecretNames() {
imagePullSecrets = append(imagePullSecrets, corev1.LocalObjectReference{
Name: pullSecretName,
})
Expand Down
4 changes: 2 additions & 2 deletions pkg/api/v1beta3/dynakube/properties.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ func (dk *DynaKube) PullSecretName() string {
}

// PullSecretsNames returns the names of the pull secrets to be used for immutable images.
func (dk *DynaKube) PullSecretsNames() []string {
func (dk *DynaKube) PullSecretNames() []string {
names := []string{
dk.Name + PullSecretSuffix,
}
Expand All @@ -225,7 +225,7 @@ func (dk *DynaKube) PullSecretsNames() []string {

func (dk *DynaKube) ImagePullSecretReferences() []corev1.LocalObjectReference {
imagePullSecrets := make([]corev1.LocalObjectReference, 0)
for _, pullSecretName := range dk.PullSecretsNames() {
for _, pullSecretName := range dk.PullSecretNames() {
imagePullSecrets = append(imagePullSecrets, corev1.LocalObjectReference{
Name: pullSecretName,
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,8 @@ func TestAddTemplateSpec(t *testing.T) {

assert.NotEmpty(t, spec.Containers)
assert.NotEmpty(t, spec.Affinity)
assert.Equal(t, len(dynakube.PullSecretsNames()), len(spec.ImagePullSecrets))
assert.Equal(t, dynakube.PullSecretsNames()[0], spec.ImagePullSecrets[0].Name)
assert.Equal(t, len(dynakube.PullSecretNames()), len(spec.ImagePullSecrets))
assert.Equal(t, dynakube.PullSecretNames()[0], spec.ImagePullSecrets[0].Name)
})

t.Run("adds capability specific stuff", func(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion pkg/injection/codemodule/installer/image/installer.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func NewImageInstaller(ctx context.Context, fs afero.Fs, props *Properties) (ins
return nil, err
}

keychain, err := dockerkeychain.NewDockerKeychains(ctx, props.ApiReader, props.Dynakube.Namespace, props.Dynakube.PullSecretsNames())
keychain, err := dockerkeychain.NewDockerKeychains(ctx, props.ApiReader, props.Dynakube.Namespace, props.Dynakube.PullSecretNames())
if err != nil {
return nil, err
}
Expand Down
34 changes: 12 additions & 22 deletions pkg/oci/dockerkeychain/docker_keychain.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,18 @@ type DockerKeychain struct {
mutex sync.Mutex
}

func NewDockerKeychains(ctx context.Context, apiReader client.Reader, namespaceName string, pullSecretsNames []string) (authn.Keychain, error) {
func NewDockerKeychains(ctx context.Context, apiReader client.Reader, namespaceName string, pullSecretNames []string) (authn.Keychain, error) {
keychain := &DockerKeychain{}
err := keychain.loadDockerConfigFromSecrets(ctx, apiReader, namespaceName, pullSecretsNames)

return keychain, err
}

func (keychain *DockerKeychain) loadDockerConfigFromSecrets(ctx context.Context, apiReader client.Reader, namespaceName string, pullSecretsNames []string) error {
if len(pullSecretsNames) == 0 {
return nil
if len(pullSecretNames) == 0 {
return keychain, nil
}

configFile := configfile.ConfigFile{
AuthConfigs: make(map[string]dockertypes.AuthConfig),
}

for _, pullSecretName := range pullSecretsNames {
for _, pullSecretName := range pullSecretNames {
pullSecret := corev1.Secret{}

if err := apiReader.Get(ctx, client.ObjectKey{Namespace: namespaceName, Name: pullSecretName}, &pullSecret); err != nil {
Expand All @@ -50,12 +45,12 @@ func (keychain *DockerKeychain) loadDockerConfigFromSecrets(ctx context.Context,
if err != nil {
log.Info("failed to parse pull secret content", "name", pullSecret.Name, "namespace", pullSecret.Namespace)

return err
return keychain, err
}

err = configFile.LoadFromReader(bytes.NewReader(dockerAuths))
if err != nil {
return errors.WithStack(err)
return keychain, errors.WithStack(err)
}
}

Expand All @@ -66,42 +61,37 @@ func (keychain *DockerKeychain) loadDockerConfigFromSecrets(ctx context.Context,
log.Debug("no docker configs found")
}

return nil
return keychain, nil
}

func NewDockerKeychain(ctx context.Context, apiReader client.Reader, pullSecret corev1.Secret) (authn.Keychain, error) {
keychain := &DockerKeychain{}
err := keychain.loadDockerConfigFromSecret(ctx, apiReader, pullSecret)

return keychain, err
}

func (keychain *DockerKeychain) loadDockerConfigFromSecret(ctx context.Context, apiReader client.Reader, pullSecret corev1.Secret) error {
if pullSecret.Name == "" {
return nil
return keychain, nil
}

if err := apiReader.Get(ctx, client.ObjectKey{Namespace: pullSecret.Namespace, Name: pullSecret.Name}, &pullSecret); err != nil {
log.Info("No registry pull secret loaded", "name", pullSecret.Name, "namespace", pullSecret.Namespace, "err", err)

return nil
return keychain, nil
}

dockerAuths, err := extractDockerAuthsFromSecret(&pullSecret)
if err != nil {
log.Info("failed to parse pull secret content", "name", pullSecret.Name, "namespace", pullSecret.Namespace)

return err
return keychain, err
}

cf, err := config.LoadFromReader(bytes.NewReader(dockerAuths))
if err != nil {
return errors.WithStack(err)
return keychain, errors.WithStack(err)
}

keychain.dockerConfig = cf

return nil
return keychain, nil
}

func extractDockerAuthsFromSecret(secret *corev1.Secret) ([]byte, error) {
Expand Down

0 comments on commit 3b7f99c

Please sign in to comment.