package bootstrap import ( "flag" "sigs.k8s.io/controller-runtime/pkg/log/zap" ) type options struct { manager managerOptions database databaseOptions openBao openBaoOptions logging zap.Options } func (o *options) bindFlags(flags *flag.FlagSet) { o.manager.bindFlags(flags) o.database.bindFlags(flags) o.openBao.bindFlags(flags) o.logging.Development = true o.logging.BindFlags(flags) } type managerOptions struct { metricsAddr string metricsCertPath string metricsCertName string metricsCertKey string webhookCertPath string webhookCertName string webhookCertKey string webhookPort int enableLeaderElection bool probeAddr string secureMetrics bool enableHTTP2 bool } func (o *managerOptions) bindFlags(flags *flag.FlagSet) { flags.StringVar(&o.metricsAddr, "metrics-bind-address", "0", "The address the metrics endpoint binds to. "+ "Use :8443 for HTTPS or :8080 for HTTP, or leave as 0 to disable the metrics service.") flags.StringVar(&o.probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.") flags.BoolVar(&o.enableLeaderElection, "leader-elect", false, "Enable leader election for controller manager. "+ "Enabling this will ensure there is only one active controller manager.") flags.BoolVar(&o.secureMetrics, "metrics-secure", true, "If set, the metrics endpoint is served securely via HTTPS. Use --metrics-secure=false to use HTTP instead.") flags.StringVar(&o.webhookCertPath, "webhook-cert-path", "", "The directory that contains the webhook certificate.") flags.StringVar(&o.webhookCertName, "webhook-cert-name", "tls.crt", "The name of the webhook certificate file.") flags.StringVar(&o.webhookCertKey, "webhook-cert-key", "tls.key", "The name of the webhook key file.") flags.IntVar(&o.webhookPort, "webhook-port", 9443, "Port the webhook server listens on. "+ "Defaults to 9443. Set -1 to disable the webhook server.") flags.StringVar(&o.metricsCertPath, "metrics-cert-path", "", "The directory that contains the metrics server certificate.") flags.StringVar(&o.metricsCertName, "metrics-cert-name", "tls.crt", "The name of the metrics server certificate file.") flags.StringVar(&o.metricsCertKey, "metrics-cert-key", "tls.key", "The name of the metrics server key file.") flags.BoolVar(&o.enableHTTP2, "enable-http2", false, "If set, HTTP/2 will be enabled for the metrics and webhook servers") }