You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 6, 2022. It is now read-only.
Actually Use Authentication and Authorization (#615)
* Add flag to disable auth for testing purposes
Some of the tests run the service catalog API server without a
corresponding Kubernetes API server. In this case, no delegating
authentication or authorization is possible. The `--disable-auth`
flag causes the API server setup to skip setting up authentication
and authorization in these cases.
* Update Helm Charts for Auth and Aggregation
This commit updates the helm charts, inserting the requisite options
for running the service catalog behind the master's integrated
API server aggregator.
The new options are:
- `useAggregator`: causes the API server to be registered with the k8s
API server and points the controller manager at the there instead
of at the service catalog API server.
- `apiserver.tls.requestHeaderCA`: the CA used to authenticate requests
from the k8s API server proxy, so that we can trust the authentication
information that it passes us (because it handles authentication
itself, and then passes us the extracted information).
- `apiserver.tls.ca`: the CA used to sign the serving certificates for
the API server. This is needed by the API registration information,
so that the k8s API server proxy can verify that it's talking to the
correct server.
In order to use aggregation, you must also pass
`apiserver.tls.{cert,key}`, instead of letting them be autogenerated
as self-signed certificates.
* Fix up Kubeconfig handling
This commit uncomments and fixes up the Kubeconfig handling, making
it possible to actually pass in Kubeconfigs to use to connect to
the k8s API server and the service catalog API server.
Furthermore, we explicitly try and use in-cluster config for service
catalog API server connections, avoiding a generic error message about
it "possibly" not working in favor of our own warning, which advises
viewers to make sure that the service catalog APIs are registered with
the aggregator.
* Actually die if APIs aren't available
Previously, we'd start (and otherwise appear healthy), but not
actually do anything if the service catalog APIs weren't available.
Now, the controller manager fails if the APIs aren't available, so
that we eventually get restarted.
* Renable authentication and authorization
This re-enables actually applying the effects of the authentication and authorization
options. The API server will now attempt to delegate authentication and
authorization options to a main Kube API server.
These should work fine now that we're using the 1.6 generic API server
code.
* Ensure walkthrough requestheader certs
This PR makes sure that when running the walkthrough test,
the extensions-apiserver-authentication configmap, which is
autogenerated by the main Kubernetes API server, contains requestheader
certs. If it doesn't, it augments the configmap with requestheader
certs matching the client certs from the cluster, since GKE does set
these (this might not necessarily be what you normally want, but works
fine for testing).
* Force jenkins to use k8s 1.6.1
This commit tells Jenkins to use a 1.6.1 cluster. This ensures that we
always know what cluster version we're running tests against, and also
opts us in to using a 1.6 cluster (which is not the default at the time
of authorship of this PR).
Copy file name to clipboardExpand all lines: charts/catalog/README.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,6 +44,8 @@ chart and their default values.
44
44
|`apiserver.insecure`| Whether to expose an insecure endpoint; keep this enabled because there are some outstanding problems with the TLS-secured endpoint |`true`|
45
45
|`apiserver.tls.cert`| Base64-encoded x509 certificate | A self-signed certificate |
46
46
|`apiserver.tls.key`| Base64-encoded private key | The private key for the certificate above |
47
+
|`apiserver.tls.ca`| Base64-encoded CA certificate used to sign the above certificate ||
48
+
|`apiserver.tls.requestHeaderCA`| Base64-encoded CA used to validate request-header authentication, when receiving delegated authentication from an aggregator |*none (will disable requestheader authentication)*|
47
49
|`apiserver.service.type`| Type of service; valid values are `LoadBalancer` and `NodePort`|`NodePort`|
48
50
|`apiserver.service.nodePort.securePort`| If service type is `NodePort`, specifies a port in allowable range (e.g. 30000 - 32767 on minikube); The TLS-enabled endpoint will be exposed here |`30443`|
49
51
|`apiserver.service.nodePort.insecurePort`| If service type is `NodePort`, specifies a port in allowable range (e.g. 30000 - 32767 on minikube); The insecure endpoint, if enabled, will be exposed here |`30080`|
@@ -57,6 +59,7 @@ chart and their default values.
57
59
|`controllerManager.verbosity`| Log level; valid values are in the range 0 - 10 |`10`|
58
60
|`controllerManager.resyncInterval`| How often the controller should resync informers; duration format (`20m`, `1h`, etc) |`5m`|
59
61
|`controllerManager.brokerRelistInterval`| How often the controller should relist the catalogs of ready brokers; duration format (`20m`, `1h`, etc) |`24h`|
62
+
|`useAggregator`| whether or not to set up the controller-manager to go through the main Kubernetes API server's API aggregator (requires setting `apiserver.tls.ca` to work) |`false`|
60
63
61
64
Specify each parameter using the `--set key=value[,key=value]` argument to
0 commit comments