mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Fixup apiserver proxy to be namespace aware
This commit is contained in:
parent
d5377e4a39
commit
5e01c804fd
@ -116,6 +116,8 @@ The k8s API server will associate a resource with a *Namespace* if not populated
|
||||
of the incoming request. If the *Namespace* of the resource being created, or updated does not match the *Namespace* on the request,
|
||||
then the k8s API server will reject the request.
|
||||
|
||||
TODO: Update to discuss k8s api server proxy patterns
|
||||
|
||||
## k8s storage
|
||||
|
||||
A namespace provides a unique identifier space and therefore must be in the storage path of a resource.
|
||||
|
@ -77,7 +77,14 @@ type ProxyHandler struct {
|
||||
}
|
||||
|
||||
func (r *ProxyHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
||||
ctx := api.NewContext()
|
||||
// use the default namespace to address the service
|
||||
ctx := api.NewDefaultContext()
|
||||
// if not in default namespace, provide the query parameter
|
||||
// TODO this will need to go in the path in the future and not as a query parameter
|
||||
namespace := req.URL.Query().Get("namespace")
|
||||
if len(namespace) > 0 {
|
||||
ctx = api.WithNamespace(ctx, namespace)
|
||||
}
|
||||
parts := strings.SplitN(req.URL.Path, "/", 3)
|
||||
if len(parts) < 2 {
|
||||
notFound(w, req)
|
||||
|
Loading…
Reference in New Issue
Block a user