Skip to content

Commit 03a08a9

Browse files
(helm/v1-alpha): Use namePrefix from kustomization.yaml instead of project name in RBAC and Helm templates
1 parent d7321e5 commit 03a08a9

File tree

1 file changed

+32
-9
lines changed
  • pkg/plugins/optional/helm/v1alpha/scaffolds

1 file changed

+32
-9
lines changed

pkg/plugins/optional/helm/v1alpha/scaffolds/init.go

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,24 @@ func (s *initScaffolder) Scaffold() error {
124124
return nil
125125
}
126126

127+
func (s *initScaffolder) getNamePrefix() (string, error) {
128+
filePath := "config/default/kustomization.yaml"
129+
content, err := os.ReadFile(filePath)
130+
if err != nil {
131+
return "", fmt.Errorf("failed to read kustomization.yaml: %w", err)
132+
}
133+
134+
var kustomization struct {
135+
NamePrefix string `yaml:"namePrefix"`
136+
}
137+
138+
if err := yaml.Unmarshal(content, &kustomization); err != nil {
139+
return "", fmt.Errorf("failed to parse kustomization.yaml: %w", err)
140+
}
141+
142+
return strings.TrimSpace(kustomization.NamePrefix), nil
143+
}
144+
127145
// getDeployImagesEnvVars will return the values to append the envvars for projects
128146
// which has the APIs scaffolded with DeployImage plugin
129147
func (s *initScaffolder) getDeployImagesEnvVars() map[string]string {
@@ -243,7 +261,12 @@ func (s *initScaffolder) copyConfigFiles() error {
243261

244262
for _, srcFile := range files {
245263
destFile := filepath.Join(dir.DestDir, filepath.Base(srcFile))
246-
err := copyFileWithHelmLogic(srcFile, destFile, dir.SubDir, s.config.GetProjectName())
264+
namePrefix, err := s.getNamePrefix()
265+
if err != nil {
266+
return err
267+
}
268+
269+
err = copyFileWithHelmLogic(srcFile, destFile, dir.SubDir, namePrefix)
247270
if err != nil {
248271
return err
249272
}
@@ -255,7 +278,7 @@ func (s *initScaffolder) copyConfigFiles() error {
255278

256279
// copyFileWithHelmLogic reads the source file, modifies the content for Helm, applies patches
257280
// to spec.conversion if applicable, and writes it to the destination
258-
func copyFileWithHelmLogic(srcFile, destFile, subDir, projectName string) error {
281+
func copyFileWithHelmLogic(srcFile, destFile, subDir, namePrefix string) error {
259282
if _, err := os.Stat(srcFile); os.IsNotExist(err) {
260283
log.Printf("Source file does not exist: %s", srcFile)
261284
return err
@@ -282,14 +305,14 @@ func copyFileWithHelmLogic(srcFile, destFile, subDir, projectName string) error
282305
"name: {{ .Values.controllerManager.serviceAccountName }}", -1)
283306
contentStr = strings.Replace(contentStr,
284307
"name: metrics-reader",
285-
fmt.Sprintf("name: %s-metrics-reader", projectName), 1)
308+
fmt.Sprintf("name: %smetrics-reader", namePrefix), 1)
286309

287310
contentStr = strings.Replace(contentStr,
288311
"name: metrics-auth-role",
289-
fmt.Sprintf("name: %s-metrics-auth-role", projectName), -1)
312+
fmt.Sprintf("name: %smetrics-auth-role", namePrefix), -1)
290313
contentStr = strings.Replace(contentStr,
291314
"name: metrics-auth-rolebinding",
292-
fmt.Sprintf("name: %s-metrics-auth-rolebinding", projectName), 1)
315+
fmt.Sprintf("name: %smetrics-auth-rolebinding", namePrefix), 1)
293316

294317
if strings.Contains(contentStr, ".Values.controllerManager.serviceAccountName") &&
295318
strings.Contains(contentStr, "kind: ServiceAccount") &&
@@ -306,16 +329,16 @@ func copyFileWithHelmLogic(srcFile, destFile, subDir, projectName string) error
306329
}
307330
contentStr = strings.Replace(contentStr,
308331
"name: leader-election-role",
309-
fmt.Sprintf("name: %s-leader-election-role", projectName), -1)
332+
fmt.Sprintf("name: %sleader-election-role", namePrefix), -1)
310333
contentStr = strings.Replace(contentStr,
311334
"name: leader-election-rolebinding",
312-
fmt.Sprintf("name: %s-leader-election-rolebinding", projectName), 1)
335+
fmt.Sprintf("name: %sleader-election-rolebinding", namePrefix), 1)
313336
contentStr = strings.Replace(contentStr,
314337
"name: manager-role",
315-
fmt.Sprintf("name: %s-manager-role", projectName), -1)
338+
fmt.Sprintf("name: %smanager-role", namePrefix), -1)
316339
contentStr = strings.Replace(contentStr,
317340
"name: manager-rolebinding",
318-
fmt.Sprintf("name: %s-manager-rolebinding", projectName), 1)
341+
fmt.Sprintf("name: %smanager-rolebinding", namePrefix), 1)
319342

320343
// The generated files do not include the namespace
321344
if strings.Contains(contentStr, "leader-election-rolebinding") ||

0 commit comments

Comments
 (0)