cmd/operator/conf/flag.go (32 lines of code) (raw):

// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. package conf import ( "flag" v12 "k8s.io/apimachinery/pkg/apis/meta/v1" "sigs.k8s.io/controller-runtime/pkg/log/zap" ) // definate the start options. type Flag struct { MetricsAddr string ProbeAddr string Namespace string EnableLeaderElection bool PrintVar bool EnableWebhook bool Opts zap.Options } func ParseFlags() *Flag { f := Flag{} flag.StringVar(&f.MetricsAddr, "metrics-bind-address", ":8080", "The address the metric endpoint binds to.") flag.StringVar(&f.ProbeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.") flag.StringVar(&f.Namespace, "namespace", v12.NamespaceAll, "The namespace to watch for changes.") flag.BoolVar(&f.EnableLeaderElection, "leader-elect", false, "Enable leader election for controller manager. "+ "Enabling this will ensure there is only one active controller manager.") flag.BoolVar(&f.PrintVar, "version", false, "Prints current version.") // check switch unnamedwatches on or off, if 'true' passed from console or config in env, will start unnamedwatches operator. flag.BoolVar(&f.EnableWebhook, "enable-unnamedwatches", true, "start the unnamedwatches.") f.Opts = zap.Options{ Development: true, } f.Opts.BindFlags(flag.CommandLine) flag.Parse() return &f }