@@ -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