36 lines
1.3 KiB
Go
36 lines
1.3 KiB
Go
package cmd
|
|
|
|
import (
|
|
"git.ar21.de/yolokube/go-traefik-certmanager/internal/config"
|
|
"github.com/alecthomas/kong"
|
|
)
|
|
|
|
//nolint:lll // ignore line length
|
|
type CLI struct {
|
|
CertIssuerName string `name:"cert-issuer-name" env:"CERT_ISSUER_NAME" help:"Name for the certificate issuer" default:"${default_cert_issuer_name}"`
|
|
CertIssuerKind string `name:"cert-issuer-kind" env:"CERT_ISSUER_KIND" help:"Kind for the certificate issuer" default:"${default_cert_issuer_kind}"`
|
|
CertCleanup bool `name:"cert-cleanup" env:"CERT_CLEANUP" help:"Delete outdated / removed certificates" default:"${default_cert_cleanup}"`
|
|
PatchSecretName bool `name:"patch-secret-name" env:"PATCH_SECRET_NAME" help:"Adjust secret names" default:"${default_patch_secret_name}"`
|
|
}
|
|
|
|
func (c *CLI) Parse() *config.AppSettings {
|
|
_ = kong.Parse(
|
|
c,
|
|
kong.Vars{
|
|
"default_cert_issuer_name": "letsencrypt",
|
|
"default_cert_issuer_kind": "ClusterIssuer",
|
|
"default_cert_cleanup": "false",
|
|
"default_patch_secret_name": "false",
|
|
},
|
|
kong.Name("go-traefik-certmanager"),
|
|
kong.Description("🚀 Start a simple service to sync certificates for traefik CRs"),
|
|
kong.UsageOnError(),
|
|
)
|
|
|
|
return &config.AppSettings{
|
|
CertIssuerName: c.CertIssuerName,
|
|
CertIssuerKind: c.CertIssuerKind,
|
|
CertCleanup: c.CertCleanup,
|
|
PatchSecretName: c.PatchSecretName,
|
|
}
|
|
}
|