mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
[stable/heapster] Add heapster to chart repository (#680)
* [stable/heapster] Add heapster to chart repository * [stable/heapster] bump heapster to v1.3.0 * [stable/heapster] minor fixes to the README * [stable/heapster] Use consistent service - notes now use consistent service name - small changes to README.md * [stable/heapster] Adds service name overide option
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
description: Heapster enables Container Cluster Monitoring and Performance Analysis.
|
||||
name: heapster
|
||||
version: 0.1.0
|
||||
sources:
|
||||
- https://github.com/kubernetes/heapster
|
||||
- https://github.com/kubernetes/contrib/tree/master/addon-resizer
|
||||
keywords:
|
||||
- metrics
|
||||
- cadvisor
|
||||
- monitoring
|
||||
maintainers:
|
||||
- name: Jose Aguirre
|
||||
email: jose.g.aguirre@intel.com
|
||||
engine: gotpl
|
||||
@@ -0,0 +1,56 @@
|
||||
# Heapster
|
||||
|
||||
[Heapster](https://github.com/kubernetes/heapster) enables Container Cluster Monitoring and Performance Analysis. It collects and interprets various signals like compute resource usage, lifecycle events, etc, and exports cluster metrics via REST endpoints.
|
||||
|
||||
## QuickStart
|
||||
|
||||
```bash
|
||||
$ helm install stable/heapster
|
||||
```
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `my-release`:
|
||||
|
||||
```bash
|
||||
$ helm install --name my-release stable/heapster
|
||||
```
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall/delete the `my-release` deployment:
|
||||
|
||||
```bash
|
||||
$ helm delete my-release --purge
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart and deletes the release.
|
||||
|
||||
## Configuration
|
||||
|
||||
The default configuration values for this chart are listed in `values.yaml`.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|---------------------------------------|-------------------------------------|---------------------------------------------------|
|
||||
| `image.repository` | Repository for container image | gcr.io/google_containers/heapster |
|
||||
| `image.tag` | Container image tag | v1.3.0 |
|
||||
| `image.pullPolicy` | Image pull policy | IfNotPresent |
|
||||
| `service.name` | Service port name | api |
|
||||
| `service.type` | Type for the service | ClusterIP |
|
||||
| `service.externalPort` | Service external port | 8082 |
|
||||
| `service.internalPort` | Service internal port | 8082 |
|
||||
| `resources.limits` | Server resource limits | requests: {cpu: 100m, memory: 128Mi} |
|
||||
| `resources.requests` | Server resource requests | requests: {cpu: 100m, memory: 128Mi} |
|
||||
| `command` | Commands for heapster pod | "/heapster --source=kubernetes.summary_api:'' |
|
||||
| `resizer.enabled` | If enabled, scale resources | true |
|
||||
|
||||
The table below is only applicable if `resizer.enabled` is `true`. More information on resizer can be found [here](https://github.com/kubernetes/contrib/blob/master/addon-resizer/README.md).
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|---------------------------------------|-------------------------------------|---------------------------------------------------|
|
||||
| `resizer.image.repository` | Repository for container image | gcr.io/google_containers/addon-resizer |
|
||||
| `resizer.image.tag` | Container image tag | 1.7 |
|
||||
| `resizer.image.pullPolicy` | Image pull policy | IfNotPresent |
|
||||
| `resizer.resources.limits` | Server resource limits | requests: {cpu: 50m, memory: 90Mi} |
|
||||
| `resizer.resources.requests` | Server resource requests | requests: {cpu: 50m, memory: 90Mi} |
|
||||
| `resizer.flags` | Flags for pod nanny command | Defaults set in values.yaml |
|
||||
@@ -0,0 +1,14 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "service.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT/
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "service.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "service.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "service.fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME {{ .Values.service.externalPort }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,25 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "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).
|
||||
*/}}
|
||||
{{- define "fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | 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 "service.fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- .Values.service.nameOverride | default (printf "%s-%s" .Release.Name $name) | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,56 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "fullname" . }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- containerPort: {{ .Values.service.internalPort }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: {{ .Values.service.internalPort }}
|
||||
initialDelaySeconds: 180
|
||||
timeoutSeconds: 5
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 12 }}
|
||||
command:
|
||||
{{- range .Values.command }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
{{ if .Values.resizer.enabled }}
|
||||
- name: {{ .Chart.Name }}-nanny
|
||||
{{ with .Values.resizer }}
|
||||
image: "{{ .image.repository }}:{{ .image.tag }}"
|
||||
imagePullPolicy: {{ .image.pullPolicy }}
|
||||
resources:
|
||||
{{ toYaml .resources | indent 12 }}
|
||||
env:
|
||||
- name: MY_POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: MY_POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
{{- end }}
|
||||
command:
|
||||
- "/pod_nanny"
|
||||
- "--deployment={{ template "fullname" . }}"
|
||||
- "--container={{ .Chart.Name }}"
|
||||
{{- range .Values.resizer.flags }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "service.fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
app: {{ template "fullname" . }}
|
||||
heritage: "{{ .Release.Service }}"
|
||||
release: "{{ .Release.Name }}"
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.internalPort }}
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: {{ template "fullname" . }}
|
||||
@@ -0,0 +1,61 @@
|
||||
## Default values for heapster.
|
||||
##
|
||||
replicaCount: 1
|
||||
image:
|
||||
repository: gcr.io/google_containers/heapster
|
||||
tag: v1.3.0
|
||||
pullPolicy: IfNotPresent
|
||||
service:
|
||||
type: ClusterIP
|
||||
externalPort: 8082
|
||||
internalPort: 8082
|
||||
## This allows an overide of the heapster service name
|
||||
## Default: {{ template "fullname" . }}
|
||||
# nameOverride:
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
||||
## Heapster command and arguments
|
||||
## Default source=kubernetes.summary_api:''
|
||||
## ref: https://github.com/kubernetes/heapster/blob/master/docs/source-configuration.md
|
||||
##
|
||||
## By default sink not set
|
||||
## ref: https://github.com/kubernetes/heapster/blob/master/docs/sink-configuration.md
|
||||
##
|
||||
command:
|
||||
- "/heapster"
|
||||
- "--source=kubernetes.summary_api:''"
|
||||
|
||||
## Resizer scales resources linearly with the number of nodes in the cluster
|
||||
## Resizer is enabled by default
|
||||
##
|
||||
resizer:
|
||||
enabled: true
|
||||
image:
|
||||
repository: gcr.io/google_containers/addon-resizer
|
||||
tag: 1.7
|
||||
pullPolicy: IfNotPresent
|
||||
resources:
|
||||
limits:
|
||||
cpu: 50m
|
||||
memory: 90Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 90Mi
|
||||
|
||||
## Flags used for /pod_nanny command
|
||||
## container and deployment flags already determined chart name
|
||||
## ref: https://github.com/kubernetes/contrib/blob/master/addon-resizer/README.md
|
||||
##
|
||||
flags:
|
||||
- "--cpu=150m"
|
||||
- "--extra-cpu=10m"
|
||||
- "--memory=200Mi"
|
||||
- "--extra-memory=6Mi"
|
||||
- "--threshold=5"
|
||||
- "--poll-period=300000"
|
||||
Reference in New Issue
Block a user