Skip to content

Commit 6e921c2

Browse files
Merge pull request #274 from alexander-demicev/cherrypickfiles
[release-0.2] Fetch additional files from secrets
2 parents 9b5aa51 + 88b4c7a commit 6e921c2

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

bootstrap/internal/controllers/rke2config_controller.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,10 +489,38 @@ func (r *RKE2ConfigReconciler) generateFileListIncludingRegistries(
489489
Permissions: filePermissions,
490490
}
491491

492+
additionalFiles := []bootstrapv1.File{}
493+
494+
for _, file := range scope.Config.Spec.Files {
495+
if file.ContentFrom != nil {
496+
scope.Logger.V(5).Info("File content is coming from a Secret, getting the content...")
497+
498+
fileContentSecret := &corev1.Secret{}
499+
500+
if err := r.Client.Get(ctx, types.NamespacedName{
501+
Name: file.ContentFrom.Secret.Name,
502+
Namespace: scope.Config.Namespace,
503+
}, fileContentSecret); err != nil {
504+
return nil, fmt.Errorf("unable to get secret %s/%s: %w", scope.Config.Namespace, file.ContentFrom.Secret.Name, err)
505+
}
506+
507+
fileContent := fileContentSecret.Data[file.ContentFrom.Secret.Key]
508+
if fileContent == nil {
509+
return nil, fmt.Errorf("file content is empty for secret %s/%s, secret key %s",
510+
scope.Config.Namespace, file.ContentFrom.Secret.Name, file.ContentFrom.Secret.Key)
511+
}
512+
513+
file.Content = string(fileContent)
514+
file.ContentFrom = nil
515+
}
516+
517+
additionalFiles = append(additionalFiles, file)
518+
}
519+
492520
files := configFiles
493521
files = append(files, registryFiles...)
494522
files = append(files, initRegistriesFile)
495-
files = append(files, scope.Config.Spec.Files...)
523+
files = append(files, additionalFiles...)
496524

497525
return files, nil
498526
}

0 commit comments

Comments
 (0)