Merge pull request #433 from kragniz/remove-namespace-flag

Remove --namespace flag
This commit is contained in:
jetstack-bot 2018-04-09 11:14:25 +01:00 committed by GitHub
commit 8d80bb7492
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 6 additions and 47 deletions

View File

@ -22,7 +22,6 @@ import (
intscheme "github.com/jetstack/cert-manager/pkg/client/clientset/versioned/scheme"
informers "github.com/jetstack/cert-manager/pkg/client/informers/externalversions"
"github.com/jetstack/cert-manager/pkg/controller"
"github.com/jetstack/cert-manager/pkg/controller/clusterissuers"
"github.com/jetstack/cert-manager/pkg/issuer"
"github.com/jetstack/cert-manager/pkg/util/kube"
kubeinformers "k8s.io/client-go/informers"
@ -39,15 +38,7 @@ func Run(opts *options.ControllerOptions, stopCh <-chan struct{}) {
run := func(_ <-chan struct{}) {
var wg sync.WaitGroup
var controllers = make(map[string]controller.Interface)
for n, fn := range controller.Known() {
if ctx.Namespace != "" && n == clusterissuers.ControllerName {
glog.Infof("Skipping ClusterIssuer controller as cert-manager is scoped to a single namespace")
continue
}
controllers[n] = fn(ctx)
}
for n, fn := range controllers {
wg.Add(1)
go func(n string, fn controller.Interface) {
defer wg.Done()
@ -58,7 +49,7 @@ func Run(opts *options.ControllerOptions, stopCh <-chan struct{}) {
if err != nil {
glog.Fatalf("error running %s controller: %s", n, err.Error())
}
}(n, fn)
}(n, fn(ctx))
}
glog.V(4).Infof("Starting shared informer factory")
ctx.SharedInformerFactory.Start(stopCh)
@ -114,14 +105,8 @@ func buildControllerContext(opts *options.ControllerOptions) (*controller.Contex
eventBroadcaster.StartRecordingToSink(&corev1.EventSinkImpl{Interface: cl.CoreV1().Events("")})
recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: controllerAgentName})
// We only create SharedInformerFactories for the --namespace specified to
// watch. If this namespace is blank (i.e. the default, watch all
// namespaces) then the factories will watch all namespaces.
// If it is specified, all operations relating to ClusterIssuer resources
// should be disabled and thus we don't need to also create factories for
// the --cluster-resource-namespace.
sharedInformerFactory := informers.NewFilteredSharedInformerFactory(intcl, time.Second*30, opts.Namespace, nil)
kubeSharedInformerFactory := kubeinformers.NewFilteredSharedInformerFactory(cl, time.Second*30, opts.Namespace, nil)
sharedInformerFactory := informers.NewSharedInformerFactory(intcl, time.Second*30)
kubeSharedInformerFactory := kubeinformers.NewSharedInformerFactory(cl, time.Second*30)
return &controller.Context{
Client: cl,
CMClient: intcl,
@ -134,13 +119,11 @@ func buildControllerContext(opts *options.ControllerOptions) (*controller.Contex
Recorder: recorder,
KubeSharedInformerFactory: kubeSharedInformerFactory,
SharedInformerFactory: sharedInformerFactory,
Namespace: opts.Namespace,
ClusterResourceNamespace: opts.ClusterResourceNamespace,
ACMEHTTP01SolverImage: opts.ACMEHTTP01SolverImage,
ClusterIssuerAmbientCredentials: opts.ClusterIssuerAmbientCredentials,
IssuerAmbientCredentials: opts.IssuerAmbientCredentials,
}),
Namespace: opts.Namespace,
ClusterResourceNamespace: opts.ClusterResourceNamespace,
}, kubeCfg, nil
}

View File

@ -11,7 +11,6 @@ import (
type ControllerOptions struct {
APIServerHost string
Namespace string
ClusterResourceNamespace string
LeaderElect bool
@ -28,7 +27,6 @@ type ControllerOptions struct {
const (
defaultAPIServerHost = ""
defaultNamespace = ""
defaultClusterResourceNamespace = "kube-system"
defaultLeaderElect = true
@ -48,7 +46,6 @@ var (
func NewControllerOptions() *ControllerOptions {
return &ControllerOptions{
APIServerHost: defaultAPIServerHost,
Namespace: defaultNamespace,
ClusterResourceNamespace: defaultClusterResourceNamespace,
LeaderElect: defaultLeaderElect,
LeaderElectionNamespace: defaultLeaderElectionNamespace,
@ -64,13 +61,9 @@ func (s *ControllerOptions) AddFlags(fs *pflag.FlagSet) {
fs.StringVar(&s.APIServerHost, "master", defaultAPIServerHost, ""+
"Optional apiserver host address to connect to. If not specified, autoconfiguration "+
"will be attempted.")
fs.StringVar(&s.Namespace, "namespace", defaultNamespace, ""+
"Optional namespace to monitor resources within. This can be used to limit the scope "+
"of cert-manager to a single namespace. If not specified, all namespaces will be watched")
fs.StringVar(&s.ClusterResourceNamespace, "cluster-resource-namespace", defaultClusterResourceNamespace, ""+
"Namespace to store resources owned by cluster scoped resources such as ClusterIssuer in. "+
"This must be specified if ClusterIssuers are enabled.")
fs.BoolVar(&s.LeaderElect, "leader-elect", true, ""+
"If true, cert-manager will perform leader election between instances to ensure no more "+
"than one instance of cert-manager operates at a time")

View File

@ -105,8 +105,8 @@ func buildController(opts *options.ControllerOptions, stopCh <-chan struct{}) (*
// If it is specified, all operations relating to ClusterIssuer resources
// should be disabled and thus we don't need to also create factories for
// the --cluster-resource-namespace.
sharedInformerFactory := informers.NewFilteredSharedInformerFactory(intcl, time.Second*30, opts.Namespace, nil)
kubeSharedInformerFactory := kubeinformers.NewFilteredSharedInformerFactory(cl, time.Second*30, opts.Namespace, nil)
sharedInformerFactory := informers.NewSharedInformerFactory(intcl, time.Second*30)
kubeSharedInformerFactory := kubeinformers.NewSharedInformerFactory(cl, time.Second*30)
ctrl := controller.New(
sharedInformerFactory.Certmanager().V1alpha1().Certificates(),
kubeSharedInformerFactory.Extensions().V1beta1().Ingresses(),

View File

@ -10,7 +10,6 @@ import (
type ControllerOptions struct {
APIServerHost string
Namespace string
LeaderElect bool
LeaderElectionNamespace string
@ -26,7 +25,6 @@ type ControllerOptions struct {
const (
defaultAPIServerHost = ""
defaultNamespace = ""
defaultLeaderElect = true
defaultLeaderElectionNamespace = "kube-system"
@ -43,7 +41,6 @@ const (
func NewControllerOptions() *ControllerOptions {
return &ControllerOptions{
APIServerHost: defaultAPIServerHost,
Namespace: defaultNamespace,
LeaderElect: defaultLeaderElect,
LeaderElectionNamespace: defaultLeaderElectionNamespace,
LeaderElectionLeaseDuration: defaultLeaderElectionLeaseDuration,
@ -60,10 +57,6 @@ func (s *ControllerOptions) AddFlags(fs *pflag.FlagSet) {
fs.StringVar(&s.APIServerHost, "master", defaultAPIServerHost, ""+
"Optional apiserver host address to connect to. If not specified, autoconfiguration "+
"will be attempted.")
fs.StringVar(&s.Namespace, "namespace", defaultNamespace, ""+
"Optional namespace to monitor resources within. This can be used to limit the scope "+
"of ingress-annotation-controller to a single namespace. If not specified, all namespaces will be watched.")
fs.BoolVar(&s.LeaderElect, "leader-elect", true, ""+
"If true, ingress-annotation-controller will perform leader election between instances to ensure no more "+
"than one instance of cert-manager operates at a time.")

View File

@ -233,14 +233,10 @@ const (
func init() {
controllerpkg.Register(ControllerName, func(ctx *controllerpkg.Context) controllerpkg.Interface {
var clusterIssuerInformer cminformers.ClusterIssuerInformer
if ctx.Namespace == "" {
clusterIssuerInformer = ctx.SharedInformerFactory.Certmanager().V1alpha1().ClusterIssuers()
}
return New(
ctx.SharedInformerFactory.Certmanager().V1alpha1().Certificates(),
ctx.SharedInformerFactory.Certmanager().V1alpha1().Issuers(),
clusterIssuerInformer,
ctx.SharedInformerFactory.Certmanager().V1alpha1().ClusterIssuers(),
ctx.KubeSharedInformerFactory.Core().V1().Secrets(),
ctx.KubeSharedInformerFactory.Extensions().V1beta1().Ingresses(),
ctx.Client,

View File

@ -32,9 +32,6 @@ type Context struct {
// instances
IssuerFactory issuer.Factory
// Namespace is a namespace to operate within. This should be used when
// constructing SharedIndexInformers for the informer factory.
Namespace string
// ClusterResourceNamespace is the namespace to store resources created by
// non-namespaced resources (e.g. ClusterIssuer) in.
ClusterResourceNamespace string

View File

@ -28,9 +28,6 @@ type Context struct {
// instances
SharedInformerFactory informers.SharedInformerFactory
// Namespace is a namespace to operate within. This should be used when
// constructing SharedIndexInformers for the informer factory.
Namespace string
// ClusterResourceNamespace is the namespace to store resources created by
// non-namespaced resources (e.g. ClusterIssuer) in.
ClusterResourceNamespace string