mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
Adds metrics-server chart (#5538)
* Add initial commit of a metrics-server chart
* Fixes metrics-server without rbac
* Fixed some lint errors
* Add a NOTES.txt file
* makes some imrpovements on how the chart looks like compared to helm create
* follow best practices for RBAC
* adds selector in deployment
* incubator/metrics-server: create ServiceAccount based on serviceAccount.create
* incubator/metrics-server: default pullPolicy to IfNotPresent
* incubator/metrics-server: add maintainer
* incubator/metrics-server: replace maintainer full name with github username in Chart.yaml
* incubator/metrics-server: make namespace configurable where possible
* incubator/metrics-server: grant system:auth-delegator clusterrole and the extension-apiserver-authentication-reader role specifically in the kube-system namespace
* incubator/metrics-server: Replace 'metrics-server' with release fullname
* incubator/metrics-server: Make apiService creation conditional
* Revert "incubator/metrics-server: grant system:auth-delegator clusterrole and the extension-apiserver-authentication-reader role specifically in the kube-system namespace"
This reverts commit b35818cf7d.
* incubator/metrics-server: put system:auth-delegator crb in kube-system
* incubator/metrics-server: disable creation of apiService on CI runs
* incubator/metrics-server: remove an unecessary RBAC rule
* incubator/metrics-server: warn about not setting apiSerivce.create: true
* incubator/metrics-server: update README.md to reflect values.yaml
* stable/metrics-server: promote chart from incubator to stable
This commit is contained in:
committed by
k8s-ci-robot
parent
0c1ec955e5
commit
da161a80fc
@@ -0,0 +1,21 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
appVersion: 0.2.1
|
||||
description: Metrics Server is a cluster-wide aggregator of resource usage data.
|
||||
name: metrics-server
|
||||
version: 0.0.2
|
||||
keywords:
|
||||
- metrics-server
|
||||
home: https://github.com/kubernetes-incubator/metrics-server
|
||||
sources:
|
||||
- https://github.com/kubernetes-incubator/metrics-server
|
||||
maintainers:
|
||||
- name: olemarkus
|
||||
email: o.with@sportradar.com
|
||||
@@ -0,0 +1,15 @@
|
||||
# metric-server
|
||||
|
||||
Metrics Server is a cluster-wide aggregator of resource usage data.
|
||||
|
||||
## Configuration
|
||||
|
||||
Parameter | Description | Default
|
||||
--- | --- | ---
|
||||
`rbac.create` | Enable Role-based authentication | `true`
|
||||
`serviceAccount.create` | If `true`, create a new service account | `true`
|
||||
`serviceAccount.name` | Service account to be used. If not set and `serviceAccount.create` is `true`, a name is generated using the fullname template | ``
|
||||
`apiService.create` | Create the v1beta1.metrics.k8s.io API service | `true`
|
||||
`image.repository` | Image repository | `gcr.io/google_containers/metrics-server-amd64`
|
||||
`image.tag` | Image tag | `v0.2.1`
|
||||
`image.pullPolicy` | Image pull policy | `IfNotPresent`
|
||||
@@ -0,0 +1,5 @@
|
||||
# CI is running on GKE, which already ships metrics-server. This cause
|
||||
# conflicts on the apiService resource.
|
||||
|
||||
apiService:
|
||||
create: false
|
||||
@@ -0,0 +1,11 @@
|
||||
The metric server has been deployed.
|
||||
{{ if .Values.apiService.create }}
|
||||
In a few minutes you should be able to list metrics using the following
|
||||
command:
|
||||
|
||||
kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
|
||||
{{ else }}
|
||||
NOTE: You have disabled the API service creation for this release. The metrics
|
||||
API will not work with this release unless you configure the metrics API
|
||||
service outside of this Helm chart.
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,51 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "metrics-server.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "metrics-server.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "metrics-server.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a service name that defaults to app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "metrics-server.service.fullname" -}}
|
||||
{{- .Values.service.nameOverride | default .Chart.Name }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "metrics-server.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{ default (include "metrics-server.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,20 @@
|
||||
{{- if .Values.rbac.create -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ template "metrics-server.fullname" . }}:system:auth-delegator
|
||||
namespace: kube-system
|
||||
labels:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
chart: {{ template "metrics-server.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: system:auth-delegator
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ template "metrics-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,22 @@
|
||||
{{- if .Values.rbac.create -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: system:{{ template "metrics-server.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
chart: {{ template "metrics-server.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
- nodes
|
||||
- namespaces
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "metrics-server.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
chart: {{ template "metrics-server.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
protocol: TCP
|
||||
targetPort: 443
|
||||
selector:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
@@ -0,0 +1,20 @@
|
||||
{{- if .Values.apiService.create -}}
|
||||
apiVersion: apiregistration.k8s.io/v1beta1
|
||||
kind: APIService
|
||||
metadata:
|
||||
name: v1beta1.metrics.k8s.io
|
||||
labels:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
chart: {{ template "metrics-server.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
service:
|
||||
name: {{ template "metrics-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
group: metrics.k8s.io
|
||||
version: v1beta1
|
||||
insecureSkipTLSVerify: true
|
||||
groupPriorityMinimum: 100
|
||||
versionPriority: 100
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,19 @@
|
||||
{{- if .Values.rbac.create -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: system:{{ template "metrics-server.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
chart: {{ template "metrics-server.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: system:{{ template "metrics-server.fullname" . }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ template "metrics-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,28 @@
|
||||
apiVersion: apps/v1beta2
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "metrics-server.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
chart: {{ template "metrics-server.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
serviceAccountName: {{ template "metrics-server.serviceAccountName" . }}
|
||||
containers:
|
||||
- name: metrics-server
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
command:
|
||||
- /metrics-server
|
||||
- --source=kubernetes.summary_api:''
|
||||
@@ -0,0 +1,11 @@
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ template "metrics-server.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
chart: {{ template "metrics-server.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,20 @@
|
||||
{{- if .Values.rbac.create -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: {{ template "metrics-server.fullname" . }}-auth-reader
|
||||
namespace: kube-system
|
||||
labels:
|
||||
app: {{ template "metrics-server.name" . }}
|
||||
chart: {{ template "metrics-server.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: extension-apiserver-authentication-reader
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ template "metrics-server.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,23 @@
|
||||
rbac:
|
||||
# Specifies whether RBAC resources should be created
|
||||
create: true
|
||||
|
||||
serviceAccount:
|
||||
# Specifies whether a ServiceAccount should be created
|
||||
create: true
|
||||
# The name of the ServiceAccount to use.
|
||||
# If not set and create is true, a name is generated using the fullname template
|
||||
name:
|
||||
|
||||
apiService:
|
||||
# Specifies if the v1beta1.metrics.k8s.io API service should be created.
|
||||
#
|
||||
# You typically want this enabled! If you disable API service creation you have to
|
||||
# manage it outside of this chart for e.g horizontal pod autoscaling to
|
||||
# work with this release.
|
||||
create: true
|
||||
|
||||
image:
|
||||
repository: gcr.io/google_containers/metrics-server-amd64
|
||||
tag: v0.2.1
|
||||
pullPolicy: IfNotPresent
|
||||
Reference in New Issue
Block a user