Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configurable global ns for Helm in the plugin's config #5339

Merged
merged 8 commits into from
Sep 13, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion chart/kubeapps/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,4 @@ maintainers:
name: kubeapps
sources:
- https://github.com/vmware-tanzu/kubeapps
version: 10.3.4-dev0
version: 10.4.0-dev0
11 changes: 8 additions & 3 deletions chart/kubeapps/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -239,10 +239,15 @@ Returns a JSON list of cluster names only (without sensitive tokens etc.)
{{- end -}}

{{/*
Returns the name of the globalRepos namespace
Returns the name of the global packaging namespace for the Helm plugin.
It uses the value passed in the plugin's config, but falls back to the "release namespace + suffix" formula.
*/}}
{{- define "kubeapps.globalReposNamespace" -}}
{{- printf "%s%s" .Release.Namespace .Values.apprepository.globalReposNamespaceSuffix -}}
{{- define "kubeapps.helmGlobalPackagingNamespace" -}}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We were already using this helper function to retrieve the namespace, so I've changed it to: "use the globalPackagingNamespace in the plugin or fall back to the previous behavior"

{{- if .Values.kubeappsapis.pluginConfig.helm.packages.v1alpha1.globalPackagingNamespace }}
{{- printf "%s" .Values.kubeappsapis.pluginConfig.helm.packages.v1alpha1.globalPackagingNamespace -}}
{{- else -}}
{{- printf "%s%s" .Release.Namespace .Values.apprepository.globalReposNamespaceSuffix -}}
{{- end -}}
Comment on lines +246 to +250
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfect! We give now priority to the right plugin-scoped value. In the future we will deprecate the apprepository.globalReposNamespaceSuffix.

{{- end -}}

{{/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ apiVersion: v1
kind: Secret
metadata:
name: {{ printf "apprepo-%s-secrets" .name }}
namespace: {{ default (include "kubeapps.globalReposNamespace" $) .namespace | quote }}
namespace: {{ default (include "kubeapps.helmGlobalPackagingNamespace" $) .namespace | quote }}
labels: {{- include "common.labels.standard" $ | nindent 4 }}
{{- if $.Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" $.Values.commonLabels "context" $ ) | nindent 4 }}
Expand All @@ -30,11 +30,11 @@ data:
{{- end }}
---
{{/* credentials are required in the release namespace for syncer jobs */}}
{{- if or .namespace $.Values.apprepository.globalReposNamespaceSuffix }}
{{- if or .namespace $.Values.apprepository.globalReposNamespaceSuffix $.Values.kubeappsapis.pluginConfig.helm.packages.v1alpha1.globalPackagingNamespace}}
apiVersion: v1
kind: Secret
metadata:
name: {{ printf "%s-apprepo-%s" (default (include "kubeapps.globalReposNamespace" $) .namespace) .name }}
name: {{ printf "%s-apprepo-%s" (default (include "kubeapps.helmGlobalPackagingNamespace" $) .namespace) .name }}
namespace: {{ $.Release.Namespace | quote }}
labels: {{- include "common.labels.standard" $ | nindent 4 }}
{{- if $.Values.commonLabels }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ apiVersion: kubeapps.com/v1alpha1
kind: AppRepository
metadata:
name: {{ .name }}
namespace: {{ default (include "kubeapps.globalReposNamespace" $) .namespace | quote }}
namespace: {{ default (include "kubeapps.helmGlobalPackagingNamespace" $) .namespace | quote }}
labels: {{- include "common.labels.standard" $ | nindent 4 }}
{{- if $.Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" $.Values.commonLabels "context" $ ) | nindent 4 }}
Expand Down
2 changes: 1 addition & 1 deletion chart/kubeapps/templates/apprepository/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ spec:
{{- end }}
- --repo-sync-cmd=/asset-syncer
- --namespace={{ .Release.Namespace }}
- --global-repos-namespace={{ include "kubeapps.globalReposNamespace" . }}
- --global-repos-namespace={{ include "kubeapps.helmGlobalPackagingNamespace" . }}
- --database-secret-name={{ include "kubeapps.postgresql.secretName" . }}
- --database-secret-key=postgres-password
- --database-url={{ printf "%s:%d" (include "kubeapps.postgresql.host" .) (int (include "kubeapps.postgresql.port" .)) }}
Expand Down
2 changes: 1 addition & 1 deletion chart/kubeapps/templates/apprepository/rbac.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
kind: RoleBinding
metadata:
name: {{ printf "kubeapps:%s:global-repos-read" .Release.Namespace | quote }}
namespace: {{ include "kubeapps.globalReposNamespace" . | quote }}
namespace: {{ include "kubeapps.helmGlobalPackagingNamespace" . | quote }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
Expand Down
2 changes: 1 addition & 1 deletion chart/kubeapps/templates/dashboard/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ data:
{
"kubeappsCluster": {{ include "kubeapps.kubeappsCluster" . | quote }},
"kubeappsNamespace": {{ .Release.Namespace | quote }},
"globalReposNamespace": {{ include "kubeapps.globalReposNamespace" . | quote }},
"helmGlobalNamespace": {{ include "kubeapps.helmGlobalPackagingNamespace" . | quote }},
"carvelGlobalNamespace": {{ .Values.kubeappsapis.pluginConfig.kappController.packages.v1alpha1.globalPackagingNamespace | quote }},
"appVersion": {{ printf "v%s" .Chart.AppVersion | quote }},
"authProxyEnabled": {{ .Values.authProxy.enabled }},
Expand Down
2 changes: 1 addition & 1 deletion chart/kubeapps/templates/kubeappsapis/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ spec:
- --pinniped-proxy-ca-cert=/etc/pinniped-proxy-tls/ca.crt
{{- end }}
{{- end }}
- --global-repos-namespace={{ include "kubeapps.globalReposNamespace" . }}
- --global-repos-namespace={{ include "kubeapps.helmGlobalPackagingNamespace" . }}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't changed the --global-repos-namespace argument since cobra CLI would panic if passing an unrecognized flag (and this is something that can happen when upgrading from a previous chart version).

I'd like to get rid of this command line "global repo" instead, but not right now for ensuring a smooth transition.

{{- if .Values.kubeappsapis.qps }}
- --kube-api-qps={{ .Values.kubeappsapis.qps }}
{{- end }}
Expand Down
6 changes: 0 additions & 6 deletions chart/kubeapps/templates/shared/global-repos-namespace.yaml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{{- if or .Values.apprepository.globalReposNamespaceSuffix .Values.kubeappsapis.pluginConfig.helm.packages.v1alpha1.globalPackagingNamespace }}
apiVersion: v1
kind: Namespace
metadata:
name: {{ include "kubeapps.helmGlobalPackagingNamespace" . | quote }}
{{- end }}
9 changes: 8 additions & 1 deletion chart/kubeapps/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -870,7 +870,7 @@ apprepository:
## - myRegistryKeySecretName
##
pullSecrets: []
## @param apprepository.globalReposNamespaceSuffix Suffix for the namespace of global repos. Defaults to empty for backwards compatibility.
## @param apprepository.globalReposNamespaceSuffix Suffix for the namespace of global repos in the Helm plugin. Defaults to empty for backwards compatibility. Ignored if kubeappsapis.pluginConfig.helm.packages.v1alpha1.globalPackagingNamespace is set.
##
globalReposNamespaceSuffix: ""
## @param apprepository.initialRepos [array] Initial chart repositories to configure
Expand Down Expand Up @@ -1492,6 +1492,13 @@ kubeappsapis:
patch: 3
## @param kubeappsapis.pluginConfig.core.packages.v1alpha1.timeoutSeconds Value to wait for Kubernetes commands to complete
timeoutSeconds: 300
helm:
packages:
v1alpha1:
## @param kubeappsapis.pluginConfig.helm.packages.v1alpha1.globalPackagingNamespace Custom global packaging namespace. Using this value will override the current "kubeapps release namespace + suffix" pattern and will create a new namespace if not exists.
globalPackagingNamespace: ""
## @param kubeappsapis.pluginConfig.helm.packages.v1alpha1.userManagedSecrets Default policy for handling repository secrets, either managed by the user or by kubeapps-apis
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've squeezed this userManagedSecrets as it was a hardcoded false value 😅

userManagedSecrets: false
kappController:
packages:
v1alpha1:
Expand Down
2 changes: 1 addition & 1 deletion cmd/apprepository-controller/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func setFlags(c *cobra.Command) {
c.Flags().StringSliceVar(&serveOpts.RepoSyncImagePullSecrets, "repo-sync-image-pullsecrets", nil, "optional reference to secrets in the same namespace to use for pulling the image used by this pod")
c.Flags().StringVar(&serveOpts.RepoSyncCommand, "repo-sync-cmd", "/chart-repo", "command used to sync/delete repos for repo-sync-image")
c.Flags().StringVar(&serveOpts.KubeappsNamespace, "namespace", "kubeapps", "Namespace to discover AppRepository resources")
c.Flags().StringVar(&serveOpts.GlobalReposNamespace, "global-repos-namespace", "kubeapps", "Namespace for global repos")
c.Flags().StringVar(&serveOpts.GlobalPackagingNamespace, "global-repos-namespace", "kubeapps", "Namespace for global repos")
c.Flags().BoolVar(&serveOpts.ReposPerNamespace, "repos-per-namespace", true, "Defaults to watch for repos in all namespaces. Switch to false to watch only the configured namespace.")
c.Flags().StringVar(&serveOpts.DBURL, "database-url", "localhost", "Database URL")
c.Flags().StringVar(&serveOpts.DBUser, "database-user", "root", "Database user")
Expand Down
6 changes: 3 additions & 3 deletions cmd/apprepository-controller/cmd/root_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func TestParseFlagsCorrect(t *testing.T) {
RepoSyncImagePullSecrets: nil,
RepoSyncCommand: "/chart-repo",
KubeappsNamespace: "kubeapps",
GlobalReposNamespace: "kubeapps",
GlobalPackagingNamespace: "kubeapps",
ReposPerNamespace: true,
DBURL: "localhost",
DBUser: "root",
Expand Down Expand Up @@ -62,7 +62,7 @@ func TestParseFlagsCorrect(t *testing.T) {
ImagePullSecretsRefs: []v1.LocalObjectReference{{Name: "s1"}, {Name: " s2"}, {Name: " s3"}},
RepoSyncCommand: "/chart-repo",
KubeappsNamespace: "kubeapps",
GlobalReposNamespace: "kubeapps",
GlobalPackagingNamespace: "kubeapps",
ReposPerNamespace: true,
DBURL: "localhost",
DBUser: "root",
Expand Down Expand Up @@ -110,7 +110,7 @@ func TestParseFlagsCorrect(t *testing.T) {
ImagePullSecretsRefs: []v1.LocalObjectReference{{Name: "s1"}, {Name: "s2"}, {Name: "s3"}},
RepoSyncCommand: "foo04",
KubeappsNamespace: "foo05",
GlobalReposNamespace: "kubeapps-repos-global",
GlobalPackagingNamespace: "kubeapps-repos-global",
ReposPerNamespace: false,
DBURL: "foo06",
DBUser: "foo07",
Expand Down
2 changes: 1 addition & 1 deletion cmd/apprepository-controller/server/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -653,7 +653,7 @@ func apprepoSyncJobArgs(apprepo *apprepov1alpha1.AppRepository, config Config) [
args = append(args, "--user-agent-comment="+config.UserAgentComment)
}

args = append(args, "--global-repos-namespace="+config.GlobalReposNamespace)
args = append(args, "--global-repos-namespace="+config.GlobalPackagingNamespace)
args = append(args, "--namespace="+apprepo.GetNamespace(), apprepo.GetName(), apprepo.Spec.URL, apprepo.Spec.Type)

if len(apprepo.Spec.OCIRepositories) > 0 {
Expand Down
2 changes: 1 addition & 1 deletion cmd/apprepository-controller/server/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1891,7 +1891,7 @@ func makeDefaultConfig() Config {
RepoSyncImagePullSecrets: []string{},
RepoSyncCommand: "/chart-repo",
KubeappsNamespace: "kubeapps",
GlobalReposNamespace: "kubeapps-global",
GlobalPackagingNamespace: "kubeapps-global",
ReposPerNamespace: true,
DBURL: "postgresql.kubeapps",
DBUser: "admin",
Expand Down
2 changes: 1 addition & 1 deletion cmd/apprepository-controller/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ type Config struct {
ImagePullSecretsRefs []corev1.LocalObjectReference
RepoSyncCommand string
KubeappsNamespace string
GlobalReposNamespace string
GlobalPackagingNamespace string
DBURL string
DBUser string
DBName string
Expand Down
2 changes: 1 addition & 1 deletion cmd/asset-syncer/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ func setRootFlags(c *cobra.Command) {
c.PersistentFlags().BoolVar(&serveOpts.TlsInsecureSkipVerify, "tls-insecure-skip-verify", false, "Skip TLS verification")
c.PersistentFlags().StringVar(&serveOpts.FilterRules, "filter-rules", "", "JSON blob with the rules to filter assets")
c.PersistentFlags().BoolVar(&serveOpts.PassCredentials, "pass-credentials", false, "pass credentials to all domains")
c.PersistentFlags().StringVar(&serveOpts.GlobalReposNamespace, "global-repos-namespace", "kubeapps", "Namespace for global repos")
c.PersistentFlags().StringVar(&serveOpts.GlobalPackagingNamespace, "global-repos-namespace", "kubeapps", "Namespace for global repos")
}

func setSyncFlags(c *cobra.Command) {
Expand Down
72 changes: 36 additions & 36 deletions cmd/asset-syncer/cmd/root_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,18 @@ func TestParseFlagsCorrect(t *testing.T) {
"--pass-credentials", "true",
},
server.Config{
DatabaseURL: "foo01",
DatabaseName: "foo02",
DatabaseUser: "foo03",
Debug: true,
Namespace: "foo04",
GlobalReposNamespace: "kubeapps-global",
OciRepositories: []string{},
TlsInsecureSkipVerify: true,
FilterRules: "foo06",
PassCredentials: true,
UserAgent: "asset-syncer/devel (foo05)",
UserAgentComment: "foo05",
DatabaseURL: "foo01",
DatabaseName: "foo02",
DatabaseUser: "foo03",
Debug: true,
Namespace: "foo04",
GlobalPackagingNamespace: "kubeapps-global",
OciRepositories: []string{},
TlsInsecureSkipVerify: true,
FilterRules: "foo06",
PassCredentials: true,
UserAgent: "asset-syncer/devel (foo05)",
UserAgentComment: "foo05",
},
true,
},
Expand All @@ -66,18 +66,18 @@ func TestParseFlagsCorrect(t *testing.T) {
"--oci-repositories", "foo07",
},
server.Config{
DatabaseURL: "foo01",
DatabaseName: "foo02",
DatabaseUser: "foo03",
Debug: true,
Namespace: "foo04",
GlobalReposNamespace: "kubeapps-global",
OciRepositories: []string{"foo07"},
TlsInsecureSkipVerify: true,
FilterRules: "foo06",
PassCredentials: true,
UserAgent: "asset-syncer/devel (foo05)",
UserAgentComment: "foo05",
DatabaseURL: "foo01",
DatabaseName: "foo02",
DatabaseUser: "foo03",
Debug: true,
Namespace: "foo04",
GlobalPackagingNamespace: "kubeapps-global",
OciRepositories: []string{"foo07"},
TlsInsecureSkipVerify: true,
FilterRules: "foo06",
PassCredentials: true,
UserAgent: "asset-syncer/devel (foo05)",
UserAgentComment: "foo05",
},
true,
},
Expand All @@ -97,18 +97,18 @@ func TestParseFlagsCorrect(t *testing.T) {
"--pass-credentials", "true",
},
server.Config{
DatabaseURL: "foo01",
DatabaseName: "foo02",
DatabaseUser: "foo03",
Debug: true,
Namespace: "foo04",
GlobalReposNamespace: "kubeapps-global",
OciRepositories: []string{},
TlsInsecureSkipVerify: true,
FilterRules: "foo06",
PassCredentials: true,
UserAgent: "asset-syncer/devel (foo05)",
UserAgentComment: "foo05",
DatabaseURL: "foo01",
DatabaseName: "foo02",
DatabaseUser: "foo03",
Debug: true,
Namespace: "foo04",
GlobalPackagingNamespace: "kubeapps-global",
OciRepositories: []string{},
TlsInsecureSkipVerify: true,
FilterRules: "foo06",
PassCredentials: true,
UserAgent: "asset-syncer/devel (foo05)",
UserAgentComment: "foo05",
},
true,
},
Expand Down
2 changes: 1 addition & 1 deletion cmd/asset-syncer/server/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func Delete(serveOpts Config, args []string) error {
}

dbConfig := dbutils.Config{URL: serveOpts.DatabaseURL, Database: serveOpts.DatabaseName, Username: serveOpts.DatabaseUser, Password: serveOpts.DatabasePassword}
manager, err := newManager(dbConfig, serveOpts.GlobalReposNamespace)
manager, err := newManager(dbConfig, serveOpts.GlobalPackagingNamespace)
if err != nil {
return fmt.Errorf("Error file creating a mananger: %v", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/asset-syncer/server/invalidate-cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func InvalidateCache(serveOpts Config, args []string) error {
}

dbConfig := dbutils.Config{URL: serveOpts.DatabaseURL, Database: serveOpts.DatabaseName, Username: serveOpts.DatabaseUser, Password: serveOpts.DatabasePassword}
manager, err := newManager(dbConfig, serveOpts.GlobalReposNamespace)
manager, err := newManager(dbConfig, serveOpts.GlobalPackagingNamespace)
if err != nil {
return fmt.Errorf("Error: %v", err)
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/asset-syncer/server/postgresql_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ type postgresAssetManager struct {
*dbutils.PostgresAssetManager
}

func newPGManager(config dbutils.Config, globalReposNamespace string) (assetManager, error) {
m, err := dbutils.NewPGManager(config, globalReposNamespace)
func newPGManager(config dbutils.Config, globalPackagingNamespace string) (assetManager, error) {
m, err := dbutils.NewPGManager(config, globalPackagingNamespace)
if err != nil {
return nil, err
}
Expand Down
4 changes: 2 additions & 2 deletions cmd/asset-syncer/server/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ func Sync(serveOpts Config, version string, args []string) error {
}

dbConfig := dbutils.Config{URL: serveOpts.DatabaseURL, Database: serveOpts.DatabaseName, Username: serveOpts.DatabaseUser, Password: serveOpts.DatabasePassword}
globalReposNamespace := serveOpts.GlobalReposNamespace
manager, err := newManager(dbConfig, globalReposNamespace)
globalPackagingNamespace := serveOpts.GlobalPackagingNamespace
manager, err := newManager(dbConfig, globalPackagingNamespace)
if err != nil {
return fmt.Errorf("Error: %v", err)
}
Expand Down
36 changes: 18 additions & 18 deletions cmd/asset-syncer/server/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,22 +44,22 @@ const (
)

type Config struct {
DatabaseURL string
DatabaseName string
DatabaseUser string
DatabasePassword string
Debug bool
Namespace string
OciRepositories []string
TlsInsecureSkipVerify bool
FilterRules string
PassCredentials bool
UserAgent string
UserAgentComment string
GlobalReposNamespace string
KubeappsNamespace string
AuthorizationHeader string
DockerConfigJson string
DatabaseURL string
DatabaseName string
DatabaseUser string
DatabasePassword string
Debug bool
Namespace string
OciRepositories []string
TlsInsecureSkipVerify bool
FilterRules string
PassCredentials bool
UserAgent string
UserAgentComment string
GlobalPackagingNamespace string
KubeappsNamespace string
AuthorizationHeader string
DockerConfigJson string
}

type importChartFilesJob struct {
Expand Down Expand Up @@ -107,8 +107,8 @@ type assetManager interface {
insertFiles(chartID string, files models.ChartFiles) error
}

func newManager(config dbutils.Config, globalReposNamespace string) (assetManager, error) {
return newPGManager(config, globalReposNamespace)
func newManager(config dbutils.Config, globalPackagingNamespace string) (assetManager, error) {
return newPGManager(config, globalPackagingNamespace)
}

func getSha256(src []byte) (string, error) {
Expand Down
2 changes: 1 addition & 1 deletion cmd/kubeapps-apis/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func setFlags(c *cobra.Command) {
c.Flags().StringVar(&serveOpts.PluginConfigPath, "plugin-config-path", "", "Configuration for plugins")
c.Flags().StringVar(&serveOpts.PinnipedProxyURL, "pinniped-proxy-url", "http://kubeapps-internal-pinniped-proxy.kubeapps:3333", "internal url to be used for requests to clusters configured for credential proxying via pinniped")
c.Flags().StringVar(&serveOpts.PinnipedProxyCACert, "pinniped-proxy-ca-cert", "", "Path to certificate authority to use with requests to pinniped-proxy service")
c.Flags().StringVar(&serveOpts.GlobalReposNamespace, "global-repos-namespace", "kubeapps", "Namespace of global repositories")
c.Flags().StringVar(&serveOpts.GlobalHelmReposNamespace, "global-repos-namespace", "kubeapps", "Namespace of global repositories for the helm plugin")
c.Flags().BoolVar(&serveOpts.UnsafeLocalDevKubeconfig, "unsafe-local-dev-kubeconfig", false, "if true, it will use the local kubeconfig at the KUBECONFIG env var instead of using the inCluster configuration.")
c.Flags().Float32Var(&serveOpts.QPS, "kube-api-qps", 10.0, "set Kubernetes API client QPS limit")
c.Flags().IntVar(&serveOpts.Burst, "kube-api-burst", 15, "set Kubernetes API client Burst limit")
Expand Down
Loading