mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +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,
|
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.
|
then the k8s API server will reject the request.
|
||||||
|
|
||||||
|
TODO: Update to discuss k8s api server proxy patterns
|
||||||
|
|
||||||
## k8s storage
|
## k8s storage
|
||||||
|
|
||||||
A namespace provides a unique identifier space and therefore must be in the storage path of a resource.
|
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) {
|
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)
|
parts := strings.SplitN(req.URL.Path, "/", 3)
|
||||||
if len(parts) < 2 {
|
if len(parts) < 2 {
|
||||||
notFound(w, req)
|
notFound(w, req)
|
||||||
|
Loading…
Reference in New Issue
Block a user