Merge pull request #6555 from dokku/service-account
Add support for app-specific service accounts when deploying via k3s
This commit is contained in:
@@ -277,7 +277,8 @@ func templateKubernetesJob(input Job) (batchv1.Job, error) {
|
|||||||
WorkingDir: input.WorkingDir,
|
WorkingDir: input.WorkingDir,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
RestartPolicy: corev1.RestartPolicyNever,
|
RestartPolicy: corev1.RestartPolicyNever,
|
||||||
|
ServiceAccountName: input.AppName,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ spec:
|
|||||||
imagePullSecrets: {{ $.Values.global.image.image_pull_secrets }}
|
imagePullSecrets: {{ $.Values.global.image.image_pull_secrets }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
|
serviceAccountName: {{ $.Values.global.app_name }}
|
||||||
schedule: {{ $config.cron.schedule }}
|
schedule: {{ $config.cron.schedule }}
|
||||||
startingDeadlineSeconds: 60
|
startingDeadlineSeconds: 60
|
||||||
successfulJobsHistoryLimit: 10
|
successfulJobsHistoryLimit: 10
|
||||||
|
|||||||
@@ -100,3 +100,4 @@ spec:
|
|||||||
{{- if $.Values.global.image.image_pull_secrets }}
|
{{- if $.Values.global.image.image_pull_secrets }}
|
||||||
imagePullSecrets: {{ $.Values.global.image.image_pull_secrets }}
|
imagePullSecrets: {{ $.Values.global.image.image_pull_secrets }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
serviceAccountName: {{ $.Values.global.app_name }}
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: service-account
|
||||||
|
app.kubernetes.io/name: service-account
|
||||||
|
app.kubernetes.io/part-of: "{{ $.Values.global.app_name }}"
|
||||||
|
name: "{{ $.Values.global.app_name }}"
|
||||||
|
namespace: "{{ $.Values.global.namespace }}"
|
||||||
@@ -256,19 +256,22 @@ func TriggerSchedulerDeploy(scheduler string, appName string, imageTag string) e
|
|||||||
}
|
}
|
||||||
|
|
||||||
deploymentId := time.Now().Unix()
|
deploymentId := time.Now().Unix()
|
||||||
b, err := templates.ReadFile("templates/chart/secret.yaml")
|
globalTemplateFiles := []string{"service-account", "secret"}
|
||||||
if err != nil {
|
for _, templateName := range globalTemplateFiles {
|
||||||
return fmt.Errorf("Error reading secret template: %w", err)
|
b, err := templates.ReadFile(fmt.Sprintf("templates/chart/%s.yaml", templateName))
|
||||||
}
|
if err != nil {
|
||||||
|
return fmt.Errorf("Error reading %s template: %w", templateName, err)
|
||||||
|
}
|
||||||
|
|
||||||
filename := filepath.Join(chartDir, "templates", "secrets.yaml")
|
filename := filepath.Join(chartDir, "templates", fmt.Sprintf("%s.yaml", templateName))
|
||||||
err = os.WriteFile(filename, b, os.FileMode(0644))
|
err = os.WriteFile(filename, b, os.FileMode(0644))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error writing secrets template: %w", err)
|
return fmt.Errorf("Error writing %s template: %w", templateName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if os.Getenv("DOKKU_TRACE") == "1" {
|
if os.Getenv("DOKKU_TRACE") == "1" {
|
||||||
common.CatFile(filename)
|
common.CatFile(filename)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
portMaps, err := getPortMaps(appName)
|
portMaps, err := getPortMaps(appName)
|
||||||
|
|||||||
Reference in New Issue
Block a user