@@ -253,7 +253,25 @@ func getHelmValues(carenChartDirectory string) (map[string]interface{}, error) {
253253func getValuesFileForChartIfNeeded (chartName , carenChartDirectory string ) (string , error ) {
254254 switch chartName {
255255 case "nutanix-csi-storage" :
256- return filepath .Join (carenChartDirectory , "addons" , "csi" , "nutanix" , defaultHelmAddonFilename ), nil
256+ // The Helm template expects the Secrets to already exist.
257+ // Read the default value file and append override values to workaround this.
258+ sourceValuesFile := filepath .Join (carenChartDirectory , "addons" , "csi" , "nutanix" , defaultHelmAddonFilename )
259+ overrideValues := `
260+ createPrismCentralSecret: true
261+ createSecret: true
262+ pcUsername: admin
263+ pcPassword: admin
264+ prismCentralEndPoint: endpoint
265+ prismEndPoint: endpoint
266+ username: admin
267+ password: admin
268+ `
269+ updatedValuesFile , err := getUpdatedValuesFile (sourceValuesFile , overrideValues )
270+ if err != nil {
271+ return "" , fmt .Errorf ("failed to modify values file: %w" , err )
272+ }
273+
274+ return updatedValuesFile .Name (), nil
257275 case "node-feature-discovery" :
258276 return filepath .Join (carenChartDirectory , "addons" , "nfd" , defaultHelmAddonFilename ), nil
259277 case "snapshot-controller" :
@@ -471,3 +489,30 @@ func getImagesFromYAMLFiles(files []string) ([]string, error) {
471489 }
472490 return images , nil
473491}
492+
493+ // getUpdatedValuesFile reads the default values file and returns a new file with the override values appended.
494+ func getUpdatedValuesFile (valuesFilePath , overrideValues string ) (* os.File , error ) {
495+ defaultValuesFile , err := os .Open (valuesFilePath )
496+ if err != nil {
497+ return nil , fmt .Errorf ("failed to open default values file: %w" , err )
498+ }
499+ defer defaultValuesFile .Close ()
500+
501+ tempFile , err := os .CreateTemp ("" , "" )
502+ if err != nil {
503+ return nil , fmt .Errorf ("failed to create temp file: %w" , err )
504+ }
505+ defer tempFile .Close ()
506+
507+ _ , err = io .Copy (tempFile , defaultValuesFile )
508+ if err != nil {
509+ return nil , fmt .Errorf ("failed to copy default values file to temp file: %w" , err )
510+ }
511+
512+ _ , err = tempFile .WriteString (overrideValues )
513+ if err != nil {
514+ return nil , fmt .Errorf ("failed to write to temp file: %w" , err )
515+ }
516+
517+ return tempFile , nil
518+ }
0 commit comments