k8s dash v7 -> v6

This commit is contained in:
Michael Thomson
2023-11-24 12:47:15 -05:00
parent 6328bad177
commit 95ac24a3c5

View File

@@ -7,7 +7,7 @@ spec:
chart: chart:
spec: spec:
chart: kubernetes-dashboard chart: kubernetes-dashboard
version: 7.0.0-alpha1 version: 6.0.x
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: kubernetes-dashboard name: kubernetes-dashboard
@@ -30,29 +30,84 @@ spec:
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# General configuration shared across resources # Default values for kubernetes-dashboard
app: # This is a YAML-formatted file.
# Declare name/value pairs to be passed into your templates.
# name: value
image: image:
## Repository for container
repository: kubernetesui/dashboard
tag: "" # If not defined, uses appVersion of Chart.yaml
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
pullSecrets: [] pullSecrets: []
scaling:
# Default number of replicas ## Number of replicas
replicas: 1 replicaCount: 1
revisionHistoryLimit: 10
scheduling: ## @param commonLabels Labels to add to all deployed objects
# Node labels for pod assignment ##
# Ref: https://kubernetes.io/docs/user-guide/node-selection/ commonLabels: {}
nodeSelector: {} ## @param commonAnnotations Annotations to add to all deployed objects
security: ##
# SecurityContext to be added to pods commonAnnotations: {}
# To disable set the following configuration to null:
## Here annotations can be added to the kubernetes dashboard deployment
annotations: {}
## Here labels can be added to the kubernetes dashboard deployment
labels: {}
## Additional container arguments
##
extraArgs:
- --enable-insecure-login
# - --enable-skip-login
# - --system-banner="Welcome to Kubernetes"
## Additional container environment variables
##
extraEnv: []
# - name: SOME_VAR
# value: 'some value'
## Additional volumes to be added to kubernetes dashboard pods
##
extraVolumes: []
# - name: dashboard-kubeconfig
# secret:
# defaultMode: 420
# secretName: dashboard-kubeconfig
## Additional volumeMounts to be added to kubernetes dashboard container
##
extraVolumeMounts: []
# - mountPath: /kubeconfig
# name: dashboard-kubeconfig
# readOnly: true
## Array of extra K8s manifests to deploy
##
extraManifests: []
# - apiVersion: v1
# kind: ConfigMap
# metadata:
# name: additional-configmap
# data:
# mykey: myvalue
## Annotations to be added to kubernetes dashboard pods
# podAnnotations:
## SecurityContext to be added to kubernetes dashboard pods
## To disable set the following configuration to null:
# securityContext: null # securityContext: null
securityContext: securityContext:
runAsNonRoot: true runAsNonRoot: true
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault
# ContainerSecurityContext to be added to containers
# To disable set the following configuration to null: ## SecurityContext defaults for the kubernetes dashboard container and metrics scraper container
## To disable set the following configuration to null:
# containerSecurityContext: null # containerSecurityContext: null
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
@@ -61,277 +116,202 @@ spec:
runAsGroup: 2001 runAsGroup: 2001
capabilities: capabilities:
drop: ["ALL"] drop: ["ALL"]
# Pod Disruption Budget configuration
# Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
podDisruptionBudget:
enabled: false
minAvailable: 0
maxUnavailable: 0
networkPolicy:
enabled: false
ingressDenyAll: false
# Common labels & annotations shared across all deployed resources
labels: {}
annotations: {}
settings:
## Global dashboard settings
## Note: Use all or none. Dashboard does not support default value merging currently.
global:
# # Cluster name that appears in the browser window title if it is set
# clusterName: ""
# # Max number of items that can be displayed on each list page
# itemsPerPage: 10
# # Number of seconds between every auto-refresh of logs
# logsAutoRefreshTimeInterval: 5
# # Number of seconds between every auto-refresh of every resource. Set 0 to disable
# resourceAutoRefreshTimeInterval: 5
# # Hide all access denied warnings in the notification panel
# disableAccessDeniedNotifications: false
## Pinned CRDs that will be displayed in dashboard's menu
pinnedCRDs: []
# - kind: customresourcedefinition
# # Fully qualified name of a CRD
# name: prometheus.monitoring.coreos.com
# # Display name
# displayName: Prometheus
# # Is this CRD namespaced?
# namespaced: true
ingress:
enabled: false
hosts:
# Keep 'localhost' host only if you want to access Dashboard using 'kubectl port-forward ...' on:
# https://localhost:8443
- localhost
# - kubernetes.dashboard.domain.com
ingressClassName: internal-nginx
pathType: ImplementationSpecific
secretName: kubernetes-dashboard-certs
issuer:
name: selfsigned
# Scope determines what kind of issuer annotation will be used on ingress resource
# - default - adds 'cert-manager.io/issuer'
# - cluster - adds 'cert-manager.io/cluster-issuer'
# - disabled - disables cert-manager annotations
scope: default
labels: {}
annotations: {}
paths:
web: /
api: /api
# Use the following toleration if Dashboard can be deployed on a tainted control-plane nodes
# - key: node-role.kubernetes.io/control-plane
# effect: NoSchedule
tolerations: []
# API deployment configuration ## @param podLabels Extra labels for OAuth2 Proxy pods
api: ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
role: api ##
image: podLabels: {}
repository: docker.io/kubernetesui/dashboard-api ## @param podAnnotations Annotations for OAuth2 Proxy pods
tag: v1.0.0 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
containers: ##
ports: podAnnotations: {}
- name: api
containerPort: 9000 ## Node labels for pod assignment
protocol: TCP ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
# Additional container arguments ##
# Full list of arguments: https://github.com/kubernetes/dashboard/blob/master/docs/common/arguments.md
# args:
# - --system-banner="Welcome to the Kubernetes Dashboard"
args: []
# Additional container environment variables
# env:
# - name: SOME_VAR
# value: 'some value'
env: []
# Additional volume mounts
# - mountPath: /kubeconfig
# name: dashboard-kubeconfig
# readOnly: true
volumeMounts:
# Create volume mount to store exec logs (required)
- mountPath: /tmp
name: tmp-volume
# TODO: Validate configuration
resources:
requests:
cpu: 100m
memory: 200Mi
limits:
cpu: 250m
memory: 400Mi
# Additional volumes
# - name: dashboard-kubeconfig
# secret:
# defaultMode: 420
# secretName: dashboard-kubeconfig
volumes:
# Create on-disk volume to store exec logs (required)
- name: tmp-volume
emptyDir: {}
nodeSelector: {} nodeSelector: {}
# Labels & annotations shared between API related resources
labels: {}
annotations: {}
# WEB UI deployment configuration ## List of node taints to tolerate (requires Kubernetes >= 1.6)
web: tolerations: []
role: web # - key: "key"
image: # operator: "Equal|Exists"
repository: docker.io/kubernetesui/dashboard-web # value: "value"
tag: v1.0.0 # effect: "NoSchedule|PreferNoSchedule|NoExecute"
containers:
ports: ## Affinity for pod assignment
- name: web ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
containerPort: 8000 affinity: {}
protocol: TCP
# Additional container arguments ## Name of Priority Class of pods
# Full list of arguments: https://github.com/kubernetes/dashboard/blob/master/docs/common/arguments.md # priorityClassName: ""
# args:
# - --system-banner="Welcome to the Kubernetes Dashboard" ## Pod resource requests & limits
args: []
# Additional container environment variables
# env:
# - name: SOME_VAR
# value: 'some value'
env: []
# Additional volume mounts
# - mountPath: /kubeconfig
# name: dashboard-kubeconfig
# readOnly: true
volumeMounts:
# Create volume mount to store logs (required)
- mountPath: /tmp
name: tmp-volume
# TODO: Validate configuration
resources: resources:
requests: requests:
cpu: 100m cpu: 100m
memory: 200Mi memory: 200Mi
limits: limits:
cpu: 250m cpu: 2
memory: 400Mi memory: 200Mi
# Additional volumes
# - name: dashboard-kubeconfig ## Serve application over HTTP without TLS
# secret: ##
# defaultMode: 420 ## Note: If set to true, you may want to add --enable-insecure-login to extraArgs
# secretName: dashboard-kubeconfig protocolHttp: false
volumes:
# Create on-disk volume to store exec logs (required) service:
- name: tmp-volume type: ClusterIP
emptyDir: {} # Dashboard service port
nodeSelector: externalPort: 443
# TODO: check if it's really needed since we offer cross platform images for darwin/windows/linux
kubernetes.io/os: linux ## LoadBalancerSourcesRange is a list of allowed CIDR values, which are combined with ServicePort to
# Labels & annotations shared between WEB UI related resources ## set allowed inbound rules on the security group assigned to the master load balancer
labels: {} # loadBalancerSourceRanges: []
# clusterIP: ""
## A user-specified IP address for load balancer to use as External IP (if supported)
# loadBalancerIP:
## Additional Kubernetes Dashboard Service annotations
annotations: {} annotations: {}
### Metrics Scraper ## Here labels can be added to the Kubernetes Dashboard service
### Container to scrape, store, and retrieve a window of time from the Metrics Server. labels: {}
### refs: https://github.com/kubernetes-sigs/dashboard-metrics-scraper
metricsScraper: ## Enable or disable the kubernetes.io/cluster-service label. Should be disabled for GKE clusters >=1.15.
## Otherwise, the addon manager will presume ownership of the service and try to delete it.
clusterServiceLabel:
enabled: true enabled: true
role: metrics-scraper key: "kubernetes.io/cluster-service"
ingress:
## If true, Kubernetes Dashboard Ingress will be created.
##
enabled: false
## Kubernetes Dashboard Ingress labels
# labels:
# key: value
## Kubernetes Dashboard Ingress annotations
# annotations:
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: 'true'
## If you plan to use TLS backend with enableInsecureLogin set to false
## (default), you need to uncomment the below.
## If you use ingress-nginx < 0.21.0
# nginx.ingress.kubernetes.io/secure-backends: "true"
## if you use ingress-nginx >= 0.21.0
# nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
## Kubernetes Dashboard Ingress Class
# className: "example-lb"
## Kubernetes Dashboard Ingress paths
## Both `/` and `/*` are required to work on gce ingress.
paths:
- /
# - /*
## Custom Kubernetes Dashboard Ingress paths. Will override default paths.
##
customPaths: []
# - pathType: ImplementationSpecific
# backend:
# service:
# name: ssl-redirect
# port:
# name: use-annotation
# - pathType: ImplementationSpecific
# backend:
# service:
# name: >-
# {{ include "kubernetes-dashboard.fullname" . }}
# port:
# # Don't use string here, use only integer value!
# number: 443
## Kubernetes Dashboard Ingress hostnames
## Must be provided if Ingress is enabled
##
# hosts:
# - kubernetes-dashboard.domain.com
## Kubernetes Dashboard Ingress TLS configuration
## Secrets must be manually created in the namespace
##
# tls:
# - secretName: kubernetes-dashboard-tls
# hosts:
# - kubernetes-dashboard.domain.com
# Global dashboard settings
settings:
{}
## Cluster name that appears in the browser window title if it is set
# clusterName: ""
## Max number of items that can be displayed on each list page
# itemsPerPage: 10
## Number of seconds between every auto-refresh of logs
# logsAutoRefreshTimeInterval: 5
## Number of seconds between every auto-refresh of every resource. Set 0 to disable
# resourceAutoRefreshTimeInterval: 5
## Hide all access denied warnings in the notification panel
# disableAccessDeniedNotifications: false
## Pinned CRDs that will be displayed in dashboard's menu
pinnedCRDs:
[]
# - kind: customresourcedefinition
## Fully qualified name of a CRD
# name: prometheuses.monitoring.coreos.com
## Display name
# displayName: Prometheus
## Is this CRD namespaced?
# namespaced: true
## Metrics Scraper
## Container to scrape, store, and retrieve a window of time from the Metrics Server.
## refs: https://github.com/kubernetes-sigs/dashboard-metrics-scraper
metricsScraper:
## Wether to enable dashboard-metrics-scraper
enabled: false
image: image:
repository: docker.io/kubernetesui/metrics-scraper repository: kubernetesui/metrics-scraper
tag: v1.0.9 tag: v1.0.9
containers: resources: {}
ports: ## SecurityContext especially for the kubernetes dashboard metrics scraper container
- containerPort: 8000 ## If not set, the global containterSecurityContext values will define these values
protocol: TCP # containerSecurityContext:
args: [] # allowPrivilegeEscalation: false
# Additional container environment variables # readOnlyRootFilesystem: true
# env: # runAsUser: 1001
# - name: SOME_VAR # runAsGroup: 2001
# value: 'some value' # args:
env: [] # - --log-level=info
# Additional volume mounts # - --logtostderr=true
# - mountPath: /kubeconfig
# name: dashboard-kubeconfig
# readOnly: true
volumeMounts:
# Create volume mount to store logs (required)
- mountPath: /tmp
name: tmp-volume
# TODO: Validate configuration
resources:
requests:
cpu: 100m
memory: 200Mi
limits:
cpu: 250m
memory: 400Mi
livenessProbe:
httpGet:
scheme: HTTP
path: /
port: 8000
initialDelaySeconds: 30
timeoutSeconds: 30
# Additional volumes
# - name: dashboard-kubeconfig
# secret:
# defaultMode: 420
# secretName: dashboard-kubeconfig
volumes:
# Create on-disk volume to store exec logs (required)
- name: tmp-volume
emptyDir: {}
nodeSelector:
# TODO: check if it's really needed since we offer cross platform images for darwin/windows/linux
kubernetes.io/os: linux
# Labels & annotations shared between WEB UI related resources
labels: {}
annotations: {}
## Optional Metrics Server sub-chart
## Optional Metrics Server sub-chart configuration
## Enable this if you don't already have metrics-server enabled on your cluster and ## Enable this if you don't already have metrics-server enabled on your cluster and
## want to use it with dashboard metrics-scraper ## want to use it with dashboard metrics-scraper
## refs: ## refs:
## - https://github.com/kubernetes-sigs/metrics-server ## - https://github.com/kubernetes-sigs/metrics-server
## - https://github.com/kubernetes-sigs/metrics-server/tree/master/charts/metrics-server ## - https://github.com/kubernetes-sigs/metrics-server/tree/master/charts/metrics-server
metrics-server: metrics-server:
enabled: true
args:
- --kubelet-preferred-address-types=InternalIP
- --kubelet-insecure-tls
## Optional Cert Manager sub-chart configuration
## Enable this if you don't already have cert-manager enabled on your cluster.
cert-manager:
enabled: false enabled: false
installCRDs: true ## Example for additional args
# args:
# - --kubelet-preferred-address-types=InternalIP
# - --kubelet-insecure-tls
## Optional Nginx Ingress sub-chart configuration rbac:
## Enable this if you don't already have nginx-ingress enabled on your cluster. # Specifies whether namespaced RBAC resources (Role, Rolebinding) should be created
nginx: create: true
enabled: false
controller: # Specifies whether cluster-wide RBAC resources (ClusterRole, ClusterRolebinding) to access metrics should be created
electionID: ingress-controller-leader # Independent from rbac.create parameter.
ingressClassResource: clusterRoleMetrics: true
name: internal-nginx
default: false
controllerValue: k8s.io/internal-ingress-nginx
service:
type: ClusterIP
## Extra configurations:
## - manifests
## - predefined roles
## - prometheus
## - etc...
extras:
# Extra Kubernetes manifests to be deployed
# manifests:
# - apiVersion: v1
# kind: ConfigMap
# metadata:
# name: additional-configmap
# data:
# mykey: myvalue
manifests: []
# Start in ReadOnly mode. # Start in ReadOnly mode.
# Specifies whether cluster-wide RBAC resources (ClusterRole, ClusterRolebinding) with read only permissions to all resources listed inside the cluster should be created # Specifies whether cluster-wide RBAC resources (ClusterRole, ClusterRolebinding) with read only permissions to all resources listed inside the cluster should be created
# Only dashboard-related Secrets and ConfigMaps will still be available for writing. # Only dashboard-related Secrets and ConfigMaps will still be available for writing.
@@ -341,16 +321,68 @@ spec:
# to avoid accidental changes in the cluster outside the standard CI/CD. # to avoid accidental changes in the cluster outside the standard CI/CD.
# #
# It is NOT RECOMMENDED to use this version in production. # It is NOT RECOMMENDED to use this version in production.
# Instead, you should review the role and remove all potentially sensitive parts such as # Instead you should review the role and remove all potentially sensitive parts such as
# access to persistentvolumes, pods/log etc. # access to persistentvolumes, pods/log etc.
#
# Independent from rbac.create parameter.
clusterReadOnlyRole: false clusterReadOnlyRole: false
# It is possible to add additional rules if read only role is enabled. # It is possible to add additional rules if read only role is enabled.
# This can be useful, for example, to show CRD resources. # This can be useful, for example, to show CRD resources.
clusterReadOnlyRoleAdditionalRules: [] # clusterReadOnlyRoleAdditionalRules: []
serviceMonitor:
# Whether to create a Prometheus Operator service monitor. # If the default role permissions are not enough, it is possible to add additional permissions.
# roleAdditionalRules: []
serviceAccount:
# Specifies whether a service account should be created
create: true
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name:
livenessProbe:
# Number of seconds to wait before sending first probe
initialDelaySeconds: 30
# Number of seconds to wait for probe response
timeoutSeconds: 30
## podDisruptionBudget
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
podDisruptionBudget:
enabled: false enabled: false
# Here labels can be added to the serviceMonitor ## Minimum available instances; ignored if there is no PodDisruptionBudget
minAvailable:
## Maximum unavailable instances; ignored if there is no PodDisruptionBudget
maxUnavailable:
## PodSecurityContext for pod level securityContext
# securityContext:
# runAsUser: 1001
# runAsGroup: 2001
networkPolicy:
# Whether to create a network policy that allows/restricts access to the service
enabled: false
# Whether to set network policy to deny all ingress traffic for the kubernetes-dashboard
ingressDenyAll: false
## podSecurityPolicy for fine-grained authorization of pod creation and updates
## Note that PSP is deprecated and has been removed from kubernetes 1.25 onwards.
## For 1.25+ consider enabling PodSecurityAdmission, refer to chart README.md.
podSecurityPolicy:
# Specifies whether a pod security policy should be created
enabled: false
serviceMonitor:
# Whether or not to create a Prometheus Operator service monitor.
enabled: false
## Here labels can be added to the serviceMonitor
labels: {} labels: {}
# Here annotations can be added to the serviceMonitor ## Here annotations can be added to the serviceMonitor
annotations: {} annotations: {}
## Optional containers, i.e. for auth addons.
optionalContainers:
enabled: false
containers: []