Commit Graph

380 Commits (437873cd62386e2a7fe0e1c1d0cd0b5463a5934a)

Author SHA1 Message Date
Aaron.L.Xu 8a4fc9c7fd fix typo on federation/pkg/dnsprovider/plugins.go 2016-12-20 02:27:00 -08:00
yupeng af2a143404 fix typo
Signed-off-by: yupeng <yu.peng36@zte.com.cn>
2016-12-20 11:38:56 +08:00
Chao Xu 6709b7ada2 run hack/update-codegen.sh
run hack/verify-gofmt.sh
update bazel
2016-12-14 12:39:49 -08:00
Chao Xu c81057be2c move federation_release_1_5 to federation_clientset 2016-12-14 12:39:49 -08:00
Chao Xu 03d8820edc rename /release_1_5 to /clientset 2016-12-14 12:39:48 -08:00
Mike Danese c87de85347 autoupdate BUILD files 2016-12-12 13:30:07 -08:00
Wojciech Tyczynski aa7da5231f Update bazel files 2016-12-09 09:42:02 +01:00
Wojciech Tyczynski e8d1cba875 GetOptions in client calls 2016-12-09 09:42:01 +01:00
Kubernetes Submit Queue 133117e146 Merge pull request #35116 from shashidharatd/fed-coredns-provider
Automatic merge from submit-queue

Add CoreDNS as Federation DNS provider

This PR contains following
1. DNS provider implementation for CoreDNS with etcd as backend
2. Script for optionally deploying CoreDNS in federation control plane

Still to do:
1. HA for CoreDNS service need to be handled, would be taken up in subsequent PR
2. Need to configure CoreDNS as fallback DNS to in-cluster KubeDNS(Manual Step). Need to consider automation.

Request for review: @quinton-hoole @madhusudancs @nikhiljindal @kshafiee @deepak-vij
cc @kubernetes/sig-cluster-federation
2016-12-08 18:50:05 -08:00
Kubernetes Submit Queue b0b6f3c256 Merge pull request #38401 from liggitt/addressable-deep-copy
Automatic merge from submit-queue (batch tested with PRs 36071, 32752, 37998, 38350, 38401)

Pass addressable values to DeepCopy

Extracted from https://github.com/kubernetes/kubernetes/pull/35728

These are the places we are currently calling DeepCopy incorrectly, and we need to fix, even if we don't pick up the changes to DeepCopy in #35728:
* creating a new cloner means we have no generated functions registered
* passing non-addressable values doesn't pick up generated deep copy functions, and forces us into reflective mode
2016-12-08 16:26:00 -08:00
Kubernetes Submit Queue 8182f178f6 Merge pull request #36447 from irfanurrehman/federation-kubefed-todo-2
Automatic merge from submit-queue

[Federation] Implement dry run support in kubefed init

This one implements one of the TODO items pending in the previous set of kubefed PRs.
This one is done on top of another todo PR https://github.com/kubernetes/kubernetes/pull/36310 which is being reviewed separately.
Please review only the last 2 commits in this one.
The design doc PR for kubefed is at https://github.com/kubernetes/kubernetes/pull/34484.

cc  @kubernetes/sig-cluster-federation  @madhusudancs @nikhiljindal



**Release note**:
<!--  Steps to write your release note:
1. Use the release-note-* labels to set the release note state (if you have access) 
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
-->
``` 
[Federation] `kubefed init` now supports dry run mode. 
```
2016-12-08 14:32:08 -08:00
Kubernetes Submit Queue 702c33a564 Merge pull request #36310 from irfanurrehman/federation-kubefed-todo-1
Automatic merge from submit-queue

[Federation] Make federation etcd PVC size configurable

This one implements one of the many TODO items pending in the previous set of kubefed PRs.
The design doc PR is at https://github.com/kubernetes/kubernetes/pull/34484

cc  @kubernetes/sig-cluster-federation  @madhusudancs



**Release note**:
<!--  Steps to write your release note:
1. Use the release-note-* labels to set the release note state (if you have access) 
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
-->
``` 
[Federation] kubefed init now has a new flag, --etcd-pv-capacity, which can be used to configure the persistent volume capacity for etcd.  
```
2016-12-08 13:03:07 -08:00
Jordan Liggitt 6819706adf
Pass addressable values to DeepCopy 2016-12-08 14:16:01 -05:00
yarntime@163.com c747586b07 fix typo 2016-12-08 09:56:01 +08:00
Kubernetes Submit Queue e56b1ec1cd Merge pull request #38173 from yarntime/fix_typo_in_ingress
Automatic merge from submit-queue

fix typo in ingress

fix typo.
2016-12-06 21:11:05 -08:00
shashidharatd 2807e8050e Implement CoreDNS as external dns provider for federation 2016-12-06 16:20:55 +05:30
yarntime@163.com 16c582ed37 fix typo 2016-12-06 17:18:25 +08:00
Kevin Wang 007d7a802f Add option to disable federation ingress controller 2016-12-06 15:14:21 +11:00
Marcin Wielgus b70e194fea Enable update tests in federated namespace controller 2016-12-05 19:40:54 +01:00
Marcin 3b255d8955 Bazel update for federated secret controller tests 2016-12-05 13:00:21 +01:00
Marcin Wielgus 3e61baf3f0 Enable update tests for federated secret controller 2016-12-05 12:58:33 +01:00
Kubernetes Submit Queue 778bab2b81 Merge pull request #37407 from mwielgus/ingress_ctrl_fix
Automatic merge from submit-queue

Enable updates in federated ingress controller tests

And make channel in test helper non-blocking.

cc: @nikhiljindal @madhusudancs
2016-12-05 02:41:44 -08:00
Clayton Coleman 3454a8d52c
refactor: update bazel, codec, and gofmt 2016-12-03 19:10:53 -05:00
Clayton Coleman 5df8cc39c9
refactor: generated 2016-12-03 19:10:46 -05:00
Marcin be979ac276 Update bazel for ingress tests 2016-12-02 15:13:14 +01:00
Marcin Wielgus ac8184dfcc Ingress test fixes 2016-12-02 15:13:08 +01:00
Marcin a50b8c9ab3 Bazel update 2016-12-01 15:15:29 +01:00
Marcin Wielgus 741aa4898e Enable update unit test in federated daemonset controller 2016-12-01 15:15:26 +01:00
Kubernetes Submit Queue 737edd02a4 Merge pull request #35258 from feiskyer/package-aliase
Automatic merge from submit-queue

Fix package aliases to follow golang convention

Some package aliases are not not align with golang convention https://blog.golang.org/package-names. This PR fixes them. Also adds a verify script and presubmit checks.

Fixes #35070.

cc/ @timstclair @Random-Liu
2016-11-30 16:39:46 -08:00
Kubernetes Submit Queue 9068bdc693 Merge pull request #37572 from mwielgus/ing-fix-loop
Automatic merge from submit-queue

Fix infinte loop in federated ingress controller

Previously ingress controller was constantly scheduling reconcilation, even if no updates were needed. That behavior creates a big mess in the logs and consumes resources. 

This pr also fixes the stop function for federated ingress controller.

cc: @nikhiljindal @madhusudancs
2016-11-30 10:00:51 -08:00
Kubernetes Submit Queue d9fcabcbd0 Merge pull request #37290 from mwielgus/rev-fed-dep
Automatic merge from submit-queue

Revision handling in federated deployment controller

Deployment controller in regular kubernetes automatically adds an annotation in deployment. This causes a bit of confusion in controller and tests. This PR skips revision annotation in checks. In the next K8S release we will need to have better support for deployment revisions. 

Helps with #36588

cc: @nikhiljindal @madhusudancs
2016-11-30 09:21:25 -08:00
Kubernetes Submit Queue d51f07b60d Merge pull request #37353 from nikhiljindal/serviceDelete
Automatic merge from submit-queue

Stop deleting underlying services when federation service is deleted

Fixes https://github.com/kubernetes/kubernetes/issues/36799

Fixing federation service controller to not delete services from underlying clusters when federated service is deleted.
None of the federation controller should do this unless explicitly asked by the user using DeleteOptions. This is the only federation controller that does that.

cc @kubernetes/sig-cluster-federation @madhusudancs

```release-note
federation service controller: stop deleting services from underlying clusters when federated service is deleted.
```
2016-11-30 06:02:39 -08:00
Pengfei Ni f584ed4398 Fix package aliases to follow golang convention 2016-11-30 15:40:50 +08:00
Kubernetes Submit Queue 631612028a Merge pull request #37323 from nikhiljindal/firstClusterPR
Automatic merge from submit-queue

Fixing the logic to select first cluster in federated ingress controller

Ref https://github.com/kubernetes/kubernetes/issues/36074.

Before this change, ingress controller was using cluster with clusterIndex = 0 as the first cluster to create the ingress in.
But the ordering of clusters can change and hence ingress controller ended up creating the ingress in multiple clusters.
This PR fixes it by using an annotation on federated ingress. Controller now picks up a cluster randomly as the first cluster and creates ingress there. This clusters name is stored as an annotation on the federated ingress. Contoller does not create an ingress in any other cluster if this annotation is set on the federated ingress and IP has not been propagated. Once IP has been propagated, controller creates the ingress in all clusters.

cc @kubernetes/sig-cluster-federation @madhusudancs
2016-11-29 09:00:14 -08:00
Marcin Wielgus d3155002b8 Fix infinte loop in federated ingress controller 2016-11-28 21:42:06 +01:00
Clayton Coleman 35a6bfbcee
generated: refactor 2016-11-23 22:30:47 -06:00
Chao Xu bcc783c594 run hack/update-all.sh 2016-11-23 15:53:09 -08:00
Chao Xu eca157588d federation 2016-11-23 15:53:09 -08:00
nikhiljindal 34eae2207e Stop deleting underlying services when federation service is deleted 2016-11-23 13:02:39 -08:00
nikhiljindal 63799452b2 Fixing the logic to select first cluster in federated ingress controller 2016-11-23 10:54:29 -08:00
Kubernetes Submit Queue 5c918def7a Merge pull request #36602 from jianhuiz/federation-replicaset-controller-ready-available-replicas
Automatic merge from submit-queue

populate ready replicas and aviable replicas to federated replicaset …

populate ready replicas and aviable replicas to federated replicaset status

@nikhiljindal #33312
#29481 #32771

@deepak-vij
2016-11-22 20:45:24 -08:00
Kubernetes Submit Queue 280560a1eb Merge pull request #37271 from nikhiljindal/E2edsi
Automatic merge from submit-queue

Fixing the ingress annotation key in federated ingress controller

Fixing a few issues found during debugging https://github.com/kubernetes/kubernetes/issues/36074.

cc @kubernetes/sig-cluster-federation @madhusudancs @bprashanth
2016-11-22 16:10:04 -08:00
Marcin Wielgus 11b9706a19 Revision handling in federated deployment controller 2016-11-22 16:20:15 +01:00
nikhiljindal e98e335718 Fixing the ingress annotation key in federated ingress controller 2016-11-21 22:49:02 -08:00
Kubernetes Submit Queue 67dc87395b Merge pull request #36869 from madhusudancs/kubefed-join-context-secret-name-flags
Automatic merge from submit-queue

[Federation][join-flags] Add flags for cluster context and secret names while joining clusters to federation.

Vast majority of cluster contexts are not RFC 1123 subdomains. Since
cluster and secret names for the API objects are derived from the
cluster context name, there is no way for users to join clusters
with such context names to federation, unless they modify the context
name in their kubeconfigs itself. That's a lot of inconvenience and
entirely goes against the goal and beats the purpose of the `kubefed`
tool. So we are providing these flags to allow users to override these
values.

Also, since users register their clusters with federation, it is makes
sense in terms of user experience to make the cluster name a positional
argument because that feels more natural. Also, specifying cluster name
in the join command as a mandatory positional argument make
`kubefed join` consistent with `kubefed unjoin`. This also means
`--cluster-context` is now made a flag and defaults to cluster name if
unspecified.

`--secret-name` also defaults to the cluster name if unspecified.

Fixes: Issue #35954

cc @kubernetes/sig-cluster-federation @quinton-hoole @irfanurrehman
2016-11-21 13:02:03 -08:00
Kubernetes Submit Queue ab184e1b1f Merge pull request #36399 from mwielgus/fedrc1
Automatic merge from submit-queue

Make desired objects in fed controller reconcilation function fully writable

When creating desired objects for sub-cluster in reconciliate functions we don't make full copies. This may result in unexpected race condition in the future when someone actually adds some object modifications (not needed in most cases but anyway - the cost of extra copy will be relatively small comparing to inter-cluster traffic). In case of ReplicaSet and Deployment the spec copy was a shallow one - ok for setting just replicas but also error-prone in the future.

cc: @quinton-hoole @nikhiljindal @madhusudancs
2016-11-21 00:00:26 -08:00
Irfan Ur Rehman b21cfdcd0f [Federation] Review comments fixed for dry run support in kubefed init 2016-11-18 01:23:15 +05:30
Irfan Ur Rehman 2309821c5c [Federation] Unit tests for dry run support in kubefed init 2016-11-18 01:23:15 +05:30
Irfan Ur Rehman 0462c656e8 [Federation] Implement dry run support in kubefed init 2016-11-18 01:23:15 +05:30
Irfan Ur Rehman 98d55db5ec [Federation] Review comment fixes for making federation etcd PVC size configurable 2016-11-18 01:09:25 +05:30
Kubernetes Submit Queue 47a431e82f Merge pull request #36336 from justinsb/federation_dns_hosted_zone_2
Automatic merge from submit-queue

Federation: allow specification of dns zone by ID
2016-11-17 00:49:09 -08:00
Irfan Ur Rehman 58b631fe77 [Federation] Unit tests for federation etcd PVC size configurability 2016-11-16 20:52:16 +05:30
Irfan Ur Rehman 9cef38c705 [Federation] Make federation etcd PVC size configurable 2016-11-16 20:52:16 +05:30
Madhusudan.C.S 005f5cd21e [Federation][join-flags] Add flags for cluster context and secret names while joining clusters to federation.
Vast majority of cluster contexts are not RFC 1123 subdomains. Since
cluster and secret names for the API objects are derived from the
cluster context name, there is no way for users to join clusters
with such context names to federation, unless they modify the context
name in their kubeconfigs itself. That's a lot of inconvenience and
entirely goes against the goal and beats the purpose of the `kubefed`
tool. So we are providing these flags to allow users to override these
values.

Also, since users register their clusters with federation, it is makes
sense in terms of user experience to make the cluster name a positional
argument because that feels more natural. Also, specifying cluster name
in the join command as a mandatory positional argument make `kubefed
join` consistent with `kubefed unjoin`. This also means `--cluster-
context` is now made a flag and defaults to cluster name if unspecified.

`--secret-name` also defaults to the cluster name if unspecified.
2016-11-15 23:47:53 -08:00
Madhusudan.C.S 2f00e0eeba [Federation][init-10d] Use the right service and dns provider names in controller manager. 2016-11-15 10:42:31 -08:00
Kubernetes Submit Queue 30c830b217 Merge pull request #36492 from irfanurrehman/federation-kubefed-todo-3
Automatic merge from submit-queue

[Federation][Bugfix] Make the dns provider configurable in kubefed init

Fixes: Issue #36690 

The design doc PR relating the whole feature for kubefed is at #34484.


cc @kubernetes/sig-cluster-federation @madhusudancs @nikhiljindal
2016-11-13 17:51:28 -08:00
Kubernetes Submit Queue 3e6210994c Merge pull request #36605 from mwielgus/test-fix-1
Automatic merge from submit-queue

Federation test util fix - 1

* Make nil and empty map equivalent when testing ObjectMeta equivalence
* Add a function that waits for a particular content inside federated store

cc: @nikhiljindal @madhusudancs
2016-11-11 08:21:59 -08:00
Marcin Wielgus 2fb71ed955 Test equality in get from storage 2016-11-11 16:00:16 +01:00
Marcin Wielgus 92c3e20e93 Make null and empty as equivalent in ObjectMetaEquivalent 2016-11-11 16:00:16 +01:00
Kubernetes Submit Queue e4e3e41522 Merge pull request #36613 from mwielgus/watcher-fix-2
Automatic merge from submit-queue

Ensure proper serialization of updates and creates in federation test watcher

Fix for finalizer test problems. The issue there was that the updates were coming out of order. It was caused by firing updates in new goroutines in test watcher. The proper solution is to order them in a queue and fire in order on a single goroutine.

Ref: https://github.com/kubernetes/kubernetes/issues/36473#issuecomment-259605870

cc: @nikhiljindal @madhusudancs
2016-11-10 16:28:24 -08:00
Marcin Wielgus 3540846fbe Ensure proper serialization of updates and creates in federation test watcher 2016-11-10 23:23:24 +01:00
Marcin 41e13fcfa7 Automaticaly generated bazel 2016-11-10 21:37:04 +01:00
Marcin Wielgus b560066e01 Wait for deployment in the storage in deployment controller test 2016-11-10 21:08:32 +01:00
jianhuiz 939ae93e87 populate ready replicas and aviable replicas to federated replicaset status 2016-11-10 10:11:10 -08:00
Kubernetes Submit Queue 7d312c2b47 Merge pull request #36476 from nikhiljindal/deployRS
Automatic merge from submit-queue

Adding cascading deletion support to federation replicaset and deployments

Forked from https://github.com/kubernetes/kubernetes/pull/36330

Ref #33612
Adding cascading deletion support for federated replicasets and deployments.

```release-note
federation: Adding support for DeleteOptions.OrphanDependents for federated replicasets and deployments. Setting it to false while deleting a federated replicaset or deployment also deletes the corresponding resource from all registered clusters.
```
2016-11-10 05:36:43 -08:00
Irfan Ur Rehman a7a56caa6b [Federation] Unit test update for dns provider configurability 2016-11-10 12:56:21 +05:30
Irfan Ur Rehman c5a5a71976 [Federation] Make the dnsProvider configurable in kubefed init 2016-11-10 12:55:44 +05:30
nikhiljindal 675da90d51 autogenerated bazel and test owner changes 2016-11-09 21:41:19 -08:00
nikhiljindal 7c721cbc2f Updating federation ingress controller to support cascading deletion 2016-11-09 21:39:51 -08:00
nikhiljindal 434b1cc406 Updating daemon set controller to support cascading deletion 2016-11-09 21:39:51 -08:00
nikhiljindal 6b5375b32c Disabling flaky unit tests 2016-11-09 12:22:36 -08:00
nikhiljindal d26c438a72 autogenerated bazel and test owner changes 2016-11-08 20:05:04 -08:00
nikhiljindal 1802400700 Updating deployment controller to support cascading deletion 2016-11-08 20:05:04 -08:00
nikhiljindal 54c2fbbfdf Updating federation replicaset controller to support cascading deletion 2016-11-08 20:05:04 -08:00
nikhiljindal 8ca1b3092f Fixing federation secret controller unit test flakiness 2016-11-08 14:08:59 -08:00
Marcin Wielgus f91b3feee4 Make objects in fed controller reconcilation function fully writable 2016-11-08 11:16:31 +01:00
Kubernetes Submit Queue a0758f6767 Merge pull request #36338 from nikhiljindal/delCode
Automatic merge from submit-queue

Deleting dead code from federation service controller
2016-11-07 23:41:32 -08:00
Kubernetes Submit Queue d8fa6a99a2 Merge pull request #36296 from nikhiljindal/cascDelFedSecret
Automatic merge from submit-queue

Adding cadcading deletion support for federated secrets

Ref https://github.com/kubernetes/kubernetes/issues/33612

Adding cascading deletion support for federated secrets.
The code is same as that for namespaces.  Just ensuring that DeletionHelper functions are called at right places in secret_controller.
Also added e2e tests.

cc @kubernetes/sig-cluster-federation @caesarxuchao

```release-note
federation: Adding support for DeleteOptions.OrphanDependents for federated secrets. Setting it to false while deleting a federated secret also deletes the corresponding secrets from all registered clusters.
```
2016-11-07 22:15:08 -08:00
Justin Santa Barbara df4280651c Federation: allow specification of dns zone by ID
If we have a public & private zone with the same name (which is common
on AWS), this means we can still create records.  Also tighten up some
of the logic to allow for zones with duplicate names.
2016-11-07 17:21:36 -05:00
nikhiljindal 11ede23257 bazel changes 2016-11-07 11:43:00 -08:00
nikhiljindal 17b2178222 Adding cadcading deletion support to federated secrets 2016-11-07 11:42:59 -08:00
nikhiljindal 647b826d69 Fix a data race condition in federation namespace controller 2016-11-07 11:34:27 -08:00
Kubernetes Submit Queue e6fadcbf4b Merge pull request #36283 from nikhiljindal/nscascdelTests
Automatic merge from submit-queue

Adding more e2e tests for federated namespace cascading deletion and fixing bugs

Ref https://github.com/kubernetes/kubernetes/issues/33612

Adding more e2e tests for testing cascading deletion of federated namespace.
New tests are now verifying that cascading deletion happen when DeletionOptions.OrphanDependents=false and it does not happen when DeleteOptions.OrphanDependents=true.

Also updated deletion helper to always add OrphanFinalizer. generic registry will remove it if DeleteOptions.OrphanDependents=false. Also updated namespace registry to do the same.

We need to add the orphan finalizer to keep the orphan by default behavior. We assume that its dependents are going to be orphaned and hence add that finalizer. If user does not want the orphan behavior, he can do so using DeleteOptions and then the registry will remove that finalizer.

cc @kubernetes/sig-cluster-federation @caesarxuchao @derekwaynecarr
2016-11-07 01:37:14 -08:00
nikhiljindal 1fe6ee8915 Deleting dead code from federation service controller 2016-11-06 21:48:05 -08:00
Kubernetes Submit Queue 3c17fa5d36 Merge pull request #36048 from madhusudancs/federation-kubefed-init-10c
Automatic merge from submit-queue

[Federation][init-10c] Fix hyperkube binary path in the image and disable auth mechanisms we don't support for now.

Please review only the last commit here. This is based on PR #36047 which will be reviewed independently.

Design Doc: PR #34484

cc @kubernetes/sig-cluster-federation @nikhiljindal
2016-11-06 20:46:52 -08:00
nikhiljindal aa518d13de Adding more e2e tests for federated namespace cascading deletion and fixing a few bugs 2016-11-05 20:57:57 -07:00
Madhusudan.C.S 4618eedcf6 [Federation][init-10c] Disable auth mechanisms we don't support for now. 2016-11-05 19:38:45 -07:00
Madhusudan.C.S 41b39f3019 [Federation][init-10b] Update local kubeconfig with the new federation API server credentials. 2016-11-05 19:37:48 -07:00
Kubernetes Submit Queue 42fe4ab027 Merge pull request #35372 from justinsb/federation_dns_hosted_zone_1
Automatic merge from submit-queue

Federation: separate notion of zone-name & dns-suffix
2016-11-05 17:29:09 -07:00
Madhusudan.C.S 8d8eca5f2a [Federation][init-10a] Make the federation API server and controller manager image names configurable.
This enables testing non-release images.
2016-11-05 16:42:14 -07:00
Madhusudan.C.S 1de77559f3 [Federation][init-09] Implement unit tests for `kubefed init`. 2016-11-05 16:35:42 -07:00
Kubernetes Submit Queue ec6a5d279f Merge pull request #36019 from mwielgus/fed-secret-nn
Automatic merge from submit-queue

Switch federated secret controller to use NamespacedName

To make it cleaner and consistent with other controllers.

cc: @quinton-hoole
2016-11-04 20:24:19 -07:00
Marcin 8b91e49510 Autogenerated bazel 2016-11-05 01:14:09 +01:00
Marcin d010d1d897 Autogen updates for configmap controller 2016-11-04 16:44:40 +01:00
Marcin Wielgus 493cdf9328 Federated ConfigMap controller 2016-11-04 16:43:00 +01:00
Madhusudan.C.S efea270553 [Federation][init-08] Refactor the tests by pulling the common utilities into a testing package.
This makes these utilities reusable by other packages.
2016-11-04 01:03:41 -07:00
Madhusudan.C.S dd365b42bf [Federation][init-07] Pull the default federation namespace into a constant. 2016-11-04 00:13:20 -07:00
Madhusudan.C.S caef02cf43 [Federation][init-06] Check for the availability of federation API server's service loadbalancer address before waiting.
This speeds up the tests. Otherwise tests end up unnecessarily waiting for the
poll interval/duration which is 5 seconds right now.
2016-11-04 00:12:11 -07:00
Madhusudan.C.S d70d961689 [Federation][init-05] Separate the notions of controller manager name and federation name in the controller manager deployment spec. 2016-11-03 16:12:03 -07:00
Madhusudan.C.S 47977fbbc4 [Federation][init-04] Explicitly specify the number of API server and controller manager replicas. 2016-11-03 15:45:53 -07:00