This will default to `config/kustomize`, though may change to `.dokku/kustomize` in the future.
205 lines
6.7 KiB
Go
205 lines
6.7 KiB
Go
package scheduler_k3s
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/dokku/dokku/plugins/common"
|
|
)
|
|
|
|
// ReportSingleApp is an internal function that displays the scheduler-k3s report for one or more apps
|
|
func ReportSingleApp(appName string, format string, infoFlag string) error {
|
|
if err := common.VerifyAppName(appName); err != nil {
|
|
return err
|
|
}
|
|
|
|
flags := map[string]common.ReportFunc{
|
|
"--scheduler-k3s-computed-deploy-timeout": reportComputedDeployTimeout,
|
|
"--scheduler-k3s-deploy-timeout": reportDeployTimeout,
|
|
"--scheduler-k3s-global-deploy-timeout": reportGlobalDeployTimeout,
|
|
"--scheduler-k3s-computed-image-pull-secrets": reportComputedImagePullSecrets,
|
|
"--scheduler-k3s-image-pull-secrets": reportImagePullSecrets,
|
|
"--scheduler-k3s-global-image-pull-secrets": reportGlobalImagePullSecrets,
|
|
"--scheduler-k3s-global-kubeconfig-path": reportGlobalKubeconfigPath,
|
|
"--scheduler-k3s-global-kube-context": reportGlobalKubeContext,
|
|
"--scheduler-k3s-computed-letsencrypt-server": reportComputedLetsencryptServer,
|
|
"--scheduler-k3s-letsencrypt-server": reportLetsencryptServer,
|
|
"--scheduler-k3s-global-letsencrypt-server": reportGlobalLetsencryptServer,
|
|
"--scheduler-k3s-global-ingress-class": reportGlobalIngressClass,
|
|
"--scheduler-k3s-global-letsencrypt-email-prod": reportGlobalLetsencryptEmailProd,
|
|
"--scheduler-k3s-global-letsencrypt-email-stag": reportGlobalLetsencryptEmailStag,
|
|
"--scheduler-k3s-computed-kustomize-root-path": reportComputedKustomizeRootPath,
|
|
"--scheduler-k3s-kustomize-root-path": reportKustomizeRootPath,
|
|
"--scheduler-k3s-global-kustomize-root-path": reportGlobalKustomizeRootPath,
|
|
"--scheduler-k3s-computed-namespace": reportComputedNamespace,
|
|
"--scheduler-k3s-namespace": reportNamespace,
|
|
"--scheduler-k3s-global-namespace": reportGlobalNamespace,
|
|
"--scheduler-k3s-global-network-interface": reportGlobalNetworkInterface,
|
|
"--scheduler-k3s-computed-rollback-on-failure": reportComputedRollbackOnFailure,
|
|
"--scheduler-k3s-rollback-on-failure": reportRollbackOnFailure,
|
|
"--scheduler-k3s-global-rollback-on-failure": reportGlobalRollbackOnFailure,
|
|
"--scheduler-k3s-computed-shm-size": reportComputedShmSize,
|
|
"--scheduler-k3s-global-shm-size": reportGlobalShmSize,
|
|
"--scheduler-k3s-shm-size": reportShmSize,
|
|
}
|
|
|
|
chartProperties, err := common.PropertyGetAllByPrefix("scheduler-k3s", "--global", "chart.")
|
|
if err != nil {
|
|
return fmt.Errorf("Unable to get property list: %w", err)
|
|
}
|
|
for name, value := range chartProperties {
|
|
flagName := "--scheduler-k3s-global-" + name
|
|
flags[flagName] = func(appName string) string {
|
|
return value
|
|
}
|
|
}
|
|
|
|
flagKeys := []string{}
|
|
for flagKey := range flags {
|
|
flagKeys = append(flagKeys, flagKey)
|
|
}
|
|
|
|
trimPrefix := false
|
|
uppercaseFirstCharacter := true
|
|
infoFlags := common.CollectReport(appName, infoFlag, flags)
|
|
return common.ReportSingleApp("scheduler-k3s", appName, infoFlag, infoFlags, flagKeys, format, trimPrefix, uppercaseFirstCharacter)
|
|
}
|
|
|
|
// ReportAutoscalingAuthSingleApp is an internal function that displays the scheduler-k3s autoscaling-auth report for one app
|
|
func ReportAutoscalingAuthSingleApp(appName string, format string, includeMetadata bool) error {
|
|
properties, err := common.PropertyGetAllByPrefix("scheduler-k3s", appName, TriggerAuthPropertyPrefix)
|
|
if err != nil {
|
|
return fmt.Errorf("Unable to get property list: %w", err)
|
|
}
|
|
|
|
infoFlags := map[string]string{}
|
|
for key, value := range properties {
|
|
metadataKey := strings.TrimPrefix(key, TriggerAuthPropertyPrefix)
|
|
authType := strings.SplitN(metadataKey, ".", 2)[0]
|
|
if authType == "" {
|
|
continue
|
|
}
|
|
|
|
infoFlags[authType] = "configured"
|
|
if includeMetadata {
|
|
infoFlags[strings.ReplaceAll(metadataKey, ".", "-")] = value
|
|
}
|
|
}
|
|
|
|
flagKeys := []string{}
|
|
for flagKey := range infoFlags {
|
|
flagKeys = append(flagKeys, flagKey)
|
|
}
|
|
|
|
trimPrefix := false
|
|
uppercaseFirstCharacter := true
|
|
return common.ReportSingleApp("scheduler-k3s", appName, "", infoFlags, flagKeys, format, trimPrefix, uppercaseFirstCharacter)
|
|
}
|
|
|
|
func reportComputedDeployTimeout(appName string) string {
|
|
return getComputedDeployTimeout(appName)
|
|
}
|
|
|
|
func reportDeployTimeout(appName string) string {
|
|
return getDeployTimeout(appName)
|
|
}
|
|
|
|
func reportGlobalDeployTimeout(appName string) string {
|
|
return getGlobalDeployTimeout()
|
|
}
|
|
|
|
func reportComputedImagePullSecrets(appName string) string {
|
|
return getComputedImagePullSecrets(appName)
|
|
}
|
|
|
|
func reportImagePullSecrets(appName string) string {
|
|
return getImagePullSecrets(appName)
|
|
}
|
|
|
|
func reportGlobalImagePullSecrets(appName string) string {
|
|
return getGlobalImagePullSecrets()
|
|
}
|
|
|
|
func reportGlobalIngressClass(appName string) string {
|
|
return getGlobalIngressClass()
|
|
}
|
|
|
|
func reportGlobalKubeconfigPath(appName string) string {
|
|
return getKubeconfigPath()
|
|
}
|
|
|
|
func reportGlobalKubeContext(appName string) string {
|
|
return getKubeContext()
|
|
}
|
|
func reportComputedLetsencryptServer(appName string) string {
|
|
return getComputedLetsencryptServer(appName)
|
|
}
|
|
|
|
func reportLetsencryptServer(appName string) string {
|
|
return getLetsencryptServer(appName)
|
|
}
|
|
|
|
func reportGlobalLetsencryptServer(appName string) string {
|
|
return getGlobalLetsencryptServer()
|
|
}
|
|
|
|
func reportGlobalLetsencryptEmailProd(appName string) string {
|
|
return getGlobalLetsencryptEmailProd()
|
|
}
|
|
|
|
func reportGlobalLetsencryptEmailStag(appName string) string {
|
|
return getGlobalLetsencryptEmailStag()
|
|
}
|
|
|
|
func reportComputedKustomizeRootPath(appName string) string {
|
|
return getComputedKustomizeRootPath(appName)
|
|
}
|
|
|
|
func reportKustomizeRootPath(appName string) string {
|
|
return getKustomizeRootPath(appName)
|
|
}
|
|
|
|
func reportGlobalKustomizeRootPath(appName string) string {
|
|
return getGlobalKustomizeRootPath()
|
|
}
|
|
|
|
func reportComputedNamespace(appName string) string {
|
|
return getComputedNamespace(appName)
|
|
}
|
|
|
|
func reportNamespace(appName string) string {
|
|
return getNamespace(appName)
|
|
}
|
|
|
|
func reportGlobalNamespace(appName string) string {
|
|
return getGlobalNamespace()
|
|
}
|
|
|
|
func reportGlobalNetworkInterface(appName string) string {
|
|
return getGlobalNetworkInterface()
|
|
}
|
|
|
|
func reportComputedRollbackOnFailure(appName string) string {
|
|
return getComputedRollbackOnFailure(appName)
|
|
}
|
|
|
|
func reportRollbackOnFailure(appName string) string {
|
|
return getRollbackOnFailure(appName)
|
|
}
|
|
|
|
func reportGlobalRollbackOnFailure(appName string) string {
|
|
return getGlobalRollbackOnFailure()
|
|
}
|
|
|
|
func reportComputedShmSize(appName string) string {
|
|
return getComputedShmSize(appName)
|
|
}
|
|
|
|
func reportGlobalShmSize(appName string) string {
|
|
return getGlobalShmSize()
|
|
}
|
|
|
|
func reportShmSize(appName string) string {
|
|
return getShmSize(appName)
|
|
}
|