Skip to content

Commit

Permalink
Merge pull request #1243 from liggitt/revert-initializer-namespaces
Browse files Browse the repository at this point in the history
Automatic merge from submit-queue.

Revert initializer namespace selector change

#1191 was accidentally merged
  • Loading branch information
Kubernetes Submit Queue authored Oct 20, 2017
2 parents c7b3bdf + f8a20b9 commit 0fd19f6
Showing 1 changed file with 0 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ default admission controls. This document hashes out the implementation details.
* Do not block the entire cluster if the initializers/webhooks are not ready
after registration.

* Admin can enforce initializers to specific namespaces.

## Specification

We assume initializers could be "fail open". We need to update the extensible
Expand Down Expand Up @@ -75,13 +73,6 @@ type Initializer struct {
// if the timeout is reached. The default timeout for each initializer is
// 5s.
FailurePolicy *FailurePolicyType `json:"failurePolicy,omitempty"`

// Selects Namespaces using cluster scoped-labels. This
// matches all pods in all namespaces selected by this label selector.
// This field follows standard label selector semantics.
// If present but empty, this selector selects all namespaces.
// +optional
NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`
}

// Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended
Expand Down Expand Up @@ -282,23 +273,6 @@ crashes, so it is rare.

See [Considered but REJECTED alternatives](#considered-but-rejected-alternatives) for considered alternatives.

## Enforce initializers to specific namespaces

Current `InitializerConfiguration` is at the cluster level and all of the to-be-created resources (such as rc and deployments) defined in `Rules`
will be appended with the pending initializers automatically during creation, regardless of the namespace.
There is no way to only apply the initializers to specific namespaces.

For example, when running a multi-tenant cluster, it'd be quite useful to only apply the rules in just certain namespaces. Sometimes we
don't want to enforce in "kube-*" related namespaces as well.

With the help of `NamespaceSelector`, we can

* Apply initializer to ALL namespaces (by default);
* Apply initializer to limited namespaces using label selector;

Since most users won't add extra labels for namespaces explicitly when creating new resources, the selector matching should only be applied to
`labels.Set(map[string]string{"namespace": namespace})` instead of widely-used `metadata.Labels`.

## Future work

1. Figuring out a better schema to represent the order among
Expand Down

0 comments on commit 0fd19f6

Please sign in to comment.