Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
* upstream/master: (67 commits)
  Fix json whitespace (helm#1458)
  Use consistent whitespace in template placeholders (helm#1437)
  [stable/selenium] Make hub readiness probe timeout configurable (helm#1391)
  [stable/kube2iam]: add rbac support (helm#1286)
  [stable/traefik] Allow enabling traefik access logs (helm#1302)
  Add Stash chart (helm#1420)
  Add Gearman G2 chart (helm#1421)
  add option to include tolerations to daemonset (helm#1364)
  Moved Artifactory to stable and updated version to 5.3.2 (helm#1314)
  Concourse postgres conditional dependency (helm#1390)
  Typo in helm install command for dask-distributed (helm#1413)
  [stable/fluent-bit] Fluent Bit v0.11.12 (helm#1417)
  fixed cassandra chart's persistence bug (helm#1245)
  Prometheus: modify config to support k8s 1.6 by default (helm#1080)
  Add rocket.chat (helm#752)
  Fix influxdb deployment (helm#1424)
  feat(stable/etcd-operator): add support for supplying additional command args (helm#1418)
  add configurable service annotations helm#1234 (helm#1244)
  [stable/prometheus] extra environment variable for alert manager (helm#1237)
  [stable/heapster] Default service name to Heapster (helm#1266)
  ...
  • Loading branch information
lachie83 committed Jul 10, 2017
2 parents 0623dd5 + 05d2ea3 commit d08422a
Show file tree
Hide file tree
Showing 323 changed files with 4,054 additions and 1,214 deletions.
54 changes: 0 additions & 54 deletions incubator/artifactory/README.md

This file was deleted.

22 changes: 0 additions & 22 deletions incubator/artifactory/templates/NOTES.txt

This file was deleted.

16 changes: 0 additions & 16 deletions incubator/artifactory/templates/_helpers.tpl

This file was deleted.

37 changes: 0 additions & 37 deletions incubator/artifactory/templates/deployment.yaml

This file was deleted.

18 changes: 0 additions & 18 deletions incubator/artifactory/templates/svc.yaml

This file was deleted.

30 changes: 0 additions & 30 deletions incubator/artifactory/values.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion incubator/cassandra/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: cassandra
version: 0.1.0
version: 0.1.1
description: Apache Cassandra is a free and open-source distributed database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure.
icon: https://upload.wikimedia.org/wikipedia/commons/5/5e/Cassandra_logo.svg
keywords:
Expand Down
14 changes: 7 additions & 7 deletions incubator/cassandra/templates/cassandra-statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ spec:
fieldPath: status.podIP
livenessProbe:
exec:
command: [ "/bin/sh", "-c", "nodetool status | grep -E \"^UN\\s+${POD_IP}\"" ]
command: [ "/bin/sh", "-c", "nodetool status" ]
initialDelaySeconds: 90
periodSeconds: 30
readinessProbe:
Expand All @@ -99,12 +99,12 @@ spec:
containerPort: {{ default 9160 .Values.config.ports.thrift }}
volumeMounts:
- name: data
{{- if .Values.persistence.enabled }}
mountPath: /var/lib/cassandra
{{- else }}
emptyDir: {}
{{- end }}
{{- if .Values.persistence.enabled }}
{{- if not .Values.persistence.enabled }}
volumes:
- name: data
emptyDir: {}
{{- else }}
volumeClaimTemplates:
- metadata:
name: data
Expand All @@ -125,4 +125,4 @@ spec:
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{- end }}
{{- end }}
6 changes: 5 additions & 1 deletion incubator/elasticsearch/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
name: elasticsearch
home: https://www.elastic.co/products/elasticsearch
version: 0.1.4
version: 0.1.6
description: Flexible and powerful open source, distributed real-time search and analytics engine.
icon: https://static-www.elastic.co/assets/blteb1c97719574938d/logo-elastic-elasticsearch-lt.svg
sources:
- https://www.elastic.co/products/elasticsearch
- https://github.com/jetstack/elasticsearch-pet
- https://github.com/giantswarm/kubernetes-elastic-stack
- https://github.com/GoogleCloudPlatform/elasticsearch-docker
maintainers:
- name: Christian Simon
email: christian@jetstack.io
- name: Michael Haselton
email: michael.haselton@gmail.com
69 changes: 31 additions & 38 deletions incubator/elasticsearch/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ elasticsearch and their

## Prerequisites Details

* Kubernetes 1.3 with alpha APIs enabled
* Kubernetes 1.5
* PV dynamic provisioning support on the underlying infrastructure

## PetSet Details
* http://kubernetes.io/docs/user-guide/petset/
## StatefulSets Details
* https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

## PetSet Caveats
* http://kubernetes.io/docs/user-guide/petset/#alpha-limitations
## StatefulSets Caveats
* https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#limitations

## Todo

Expand All @@ -25,9 +25,9 @@ elasticsearch and their
## Chart Details
This chart will do the following:

* Implemented a dynamically scalable elasticsearch cluster using Kubernetes PetSets/Deployments
* Implemented a dynamically scalable elasticsearch cluster using Kubernetes StatefulSets/Deployments
* Multi-role deployment: master, client and data nodes
* PetSet Supports scaling down without degrading the cluster
* Statefulset Supports scaling down without degrading the cluster

## Installing the Chart

Expand All @@ -51,33 +51,27 @@ $ kubectl delete pvcs -l release=my-release,type=data

The following tables lists the configurable parameters of the elasticsearch chart and their default values.

| Parameter | Description | Default |
|---------------------------|-----------------------------------|----------------------------------------------------------|
| `Image` | Container image name | `jetstack/elasticsearch-pet` |
| `ImageTag` | Container image tag | `2.3.4` |
| `ImagePullPolicy` | Container pull policy | `Always` |
| `ClientReplicas` | Client node replicas (deployment) | `2` |
| `ClientCpuRequests` | Client node requested cpu | `25m` |
| `ClientMemoryRequests` | Client node requested memory | `256Mi` |
| `ClientCpuLimits` | Client node requested cpu | `100m` |
| `ClientMemoryLimits` | Client node requested memory | `512Mi` |
| `ClientHeapSize` | Client node heap size | `128m` |
| `MasterReplicas` | Master node replicas (deployment) | `2` |
| `MasterCpuRequests` | Master node requested cpu | `25m` |
| `MasterMemoryRequests` | Master node requested memory | `256Mi` |
| `MasterCpuLimits` | Master node requested cpu | `100m` |
| `MasterMemoryLimits` | Master node requested memory | `512Mi` |
| `MasterHeapSize` | Master node heap size | `128m` |
| `DataReplicas` | Data node replicas (petset) | `3` |
| `DataCpuRequests` | Data node requested cpu | `250m` |
| `DataMemoryRequests` | Data node requested memory | `2Gi` |
| `DataCpuLimits` | Data node requested cpu | `1` |
| `DataMemoryLimits` | Data node requested memory | `4Gi` |
| `DataHeapSize` | Data node heap size | `1536m` |
| `DataStorage` | Data persistent volume size | `30Gi` |
| `DataStorageClass` | Data persistent volume Class | `anything` |
| `DataStorageClassVersion` | Version of StorageClass | `alpha` |
| `Component` | Selector Key | `elasticsearch` |
| Parameter | Description | Default |
| ------------------------------------ | --------------------------------------- | ----------------------------------- |
| `image.repository` | Container image name | `jetstack/elasticsearch-pet` |
| `image.tag` | Container image tag | `2.4.0` |
| `image.pullPolicy` | Container pull policy | `Always` |
| `client.name` | Client component name | `client` |
| `client.replicas` | Client node replicas (deployment) | `2` |
| `client.resources` | Client node resources requests & limits | `{} - cpu limit must be an integer` |
| `client.heapSize` | Client node heap size | `128m` |
| `client.serviceType` | Client service type | `ClusterIP` |
| `master.name` | Master component name | `master` |
| `master.replicas` | Master node replicas (deployment) | `2` |
| `master.resources` | Master node resources requests & limits | `{} - cpu limit must be an integer` |
| `master.heapSize` | Master node heap size | `128m` |
| `master.name` | Data component name | `data` |
| `data.replicas` | Data node replicas (statefulset) | `3` |
| `data.resources` | Data node resources requests & limits | `{} - cpu limit must be an integer` |
| `data.heapSize` | Data node heap size | `1536m` |
| `data.storage` | Data persistent volume size | `30Gi` |
| `data.storageClass` | Data persistent volume Class | `nil` |
| `data.terminationGracePeriodSeconds` | Data termination grace period (seconds) | `3600` |

Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.

Expand All @@ -102,7 +96,7 @@ would degrade performance heaviliy. The issue is tracked in

## Select right storage class for SSD volumes

### GCE + Kubernetes 1.4
### GCE + Kubernetes 1.5

Create StorageClass for SSD-PD

Expand All @@ -117,9 +111,8 @@ parameters:
type: pd-ssd
EOF
```
Create cluster with Storage class `ssd` on Kubernetes 1.4+
Create cluster with Storage class `ssd` on Kubernetes 1.5+

```
$ helm install incubator/elasticsearch --name my-release --set DataStorageClass=ssd,DataStorageClassVersion=beta
$ helm install incubator/elasticsearch --name my-release --set data.storageClass=ssd,data.storage=100Gi
```
31 changes: 31 additions & 0 deletions incubator/elasticsearch/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
The elasticsearch cluster has been installed.

Elasticsearch can be accessed:

* Within your cluster, at the following DNS name at port 9200:

{{ template "client.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local

* From outside the cluster, run these commands in the same shell:
{{- if contains "NodePort" .Values.client.serviceType }}

export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "client.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.client.serviceType }}

WARNING: You have likely exposed your Elasticsearch cluster direct to the internet.
Elasticsearch does not implement any security for public facing clusters by default.
As a minimum level of security; switch to ClusterIP/NodePort and place an Nginx gateway infront of the cluster in order to lock down access to dangerous HTTP endpoints and verbs.

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 "client.fullname" . }}'

export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "client.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo http://$SERVICE_IP:9200
{{- else if contains "ClusterIP" .Values.client.serviceType }}

export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "name" . }},component={{ .Values.client.name }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:9200 to use Elasticsearch"
kubectl port-forward --namespace {{ .Release.Namespace }} $POD_NAME 9200:9200
{{- end }}
Loading

0 comments on commit d08422a

Please sign in to comment.