mirror of
https://github.com/ahmetb/kubectx.git
synced 2026-05-15 03:32:02 +00:00
Introduces a new internal/proxy package that provides a localhost HTTP reverse proxy enforcing read-only access to the Kubernetes API server. - Allows GET, HEAD, OPTIONS requests (kubectl get/describe/logs/top/watch) - Blocks POST, PUT, DELETE, PATCH with metav1.Status 405 responses - Blocks Connection: Upgrade requests (kubectl exec/cp/port-forward) - Uses client-go transport for TLS/auth to the real API server - Rewrites kubeconfig: server URL to proxy, strips auth, sets insecure-skip-tls-verify - Appends [RO] suffix to context name in rewritten kubeconfig - DEBUG=1 enables request/response logging - Comprehensive test coverage for all proxy behavior Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
37 lines
1.3 KiB
Go
37 lines
1.3 KiB
Go
// Copyright 2021 Google LLC
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package env
|
|
|
|
const (
|
|
// EnvFZFIgnore describes the environment variable to set to disable
|
|
// interactive context selection when fzf is installed.
|
|
EnvFZFIgnore = "KUBECTX_IGNORE_FZF"
|
|
|
|
// EnvNoColor describes the environment variable to disable color usage
|
|
// when printing current context in a list.
|
|
EnvNoColor = `NO_COLOR`
|
|
|
|
// EnvForceColor describes the "internal" environment variable to force
|
|
// color usage to show current context in a list.
|
|
EnvForceColor = `_KUBECTX_FORCE_COLOR`
|
|
|
|
// EnvDebug describes the internal environment variable for more verbose logging.
|
|
EnvDebug = `DEBUG`
|
|
|
|
EnvIsolatedShell = "KUBECTX_ISOLATED_SHELL"
|
|
|
|
EnvReadonlyShell = "KUBECTX_READONLY_SHELL"
|
|
)
|