Skip to content

Commit

Permalink
share v2 helm chart
Browse files Browse the repository at this point in the history
  • Loading branch information
icereval committed Feb 13, 2018
1 parent 938d871 commit 6826aeb
Show file tree
Hide file tree
Showing 23 changed files with 1,277 additions and 0 deletions.
21 changes: 21 additions & 0 deletions share/.helmignore
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions share/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: v1
description: SHARE
name: share
version: 0.1.0
keywords:
- open
- science
sources:
- https://github.com/CenterForOpenScience/share
maintainers:
- name: Michael Haselton
email: [email protected]
url: https://github.com/icereval
- name: Barrett Harber
email: [email protected]
url: https://github.com/binoculars
engine: gotpl
tillerVersion: '>=2.7.0'
2 changes: 2 additions & 0 deletions share/files/robots.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
User-agent: *
Disallow: /
24 changes: 24 additions & 0 deletions share/files/uwsgi.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[uwsgi]
uid = www-data
gid = www-data
# add user-agent, http://uwsgi.unbit.narkive.com/jEtphIzE/default-log-format-explained#post5
log-format = [pid: %(pid)|app: ?|req: ?/?] %(addr) (%(user)) {%(vars) vars in %(pktsize) bytes} [%(ctime)] %(method) %(uri) => generated %(rsize) bytes in %(msecs) msecs (%(proto) %(status)) %(headers) headers in %(hsize) bytes (%(switches) switches on core %(core)) "%(uagent)"

## Django-related settings
# chdir = /code
module = project.wsgi_green:application

# process-related settings
master = true
workers = 1
threads = 1
harakiri = 120
buffer-size = 8192
stats = :1717
vacuum = true
need-app = true
show-config = true

# greenlet settings
gevent = 500
gevent-early-monkey-patch = true
13 changes: 13 additions & 0 deletions share/requirements.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
dependencies:
- name: elasticsearch
version: 0.4.0
repository: https://centerforopenscience.github.io/helm-charts/
condition: elasticsearch.enabled, global.elasticsearch.enabled
- name: postgresql
version: 0.10.0
repository: https://centerforopenscience.github.io/helm-charts/
condition: postgresql.enabled, global.postgresql.enabled
- name: rabbitmq
version: 0.6.8
repository: https://centerforopenscience.github.io/helm-charts/
condition: rabbitmq.enabled, global.rabbitmq.enabled
1 change: 1 addition & 0 deletions share/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TODO
155 changes: 155 additions & 0 deletions share/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "share.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 "share.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified migration name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "share.migration.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.migration.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified beat name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "share.beat.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.beat.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified indexer name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "share.indexer.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.indexer.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified web name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "share.web.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.web.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified worker name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "share.worker.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.worker.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified postgresql name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "share.postgresql.fullname" -}}
{{- $name := "postgresql" -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified psotgresql master name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "share.postgresql.master.fullname" -}}
{{- $name := "postgresql-master" -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified rabbitmq name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "share.rabbitmq.fullname" -}}
{{- $name := "rabbitmq" -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Overridable deployment annotations
*/}}
{{- define "share.deploymentAnnotations" }}
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}
{{- end -}}

{{- define "share.environment" }}
{{- if .Values.postgresql.enabled }}
- name: DATABASE_HOST
value: {{ template "share.postgresql.master.fullname" . }}
- name: DATABASE_NAME
valueFrom:
secretKeyRef:
name: {{ template "share.postgresql.fullname" . }}
key: POSTGRES_DB
- name: DATABASE_USER
valueFrom:
secretKeyRef:
name: {{ template "share.postgresql.fullname" . }}
key: POSTGRES_USER
- name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "share.postgresql.fullname" . }}
key: POSTGRES_PASSWORD
{{- end }}
{{- if .Values.rabbitmq.enabled }}
- name: RABBITMQ_HOST
value: {{ template "share.rabbitmq.fullname" . }}
- name: RABBITMQ_PORT
value: {{ .Values.rabbitmq.service.ports.amqp | quote }}
- name: RABBITMQ_VHOST
valueFrom:
configMapKeyRef:
name: {{ template "share.rabbitmq.fullname" . }}
key: RABBITMQ_VHOST
- name: RABBITMQ_USERNAME
valueFrom:
secretKeyRef:
name: {{ template "share.rabbitmq.fullname" . }}
key: RABBITMQ_DEFAULT_USER
value: {{ .Values.rabbitmq.rabbitmqUsername | quote }}
- name: RABBITMQ_PASSWWORD
valueFrom:
secretKeyRef:
name: {{ template "share.rabbitmq.fullname" . }}
key: RABBITMQ_DEFAULT_PASS
{{- end }}
{{- $fullname := include "share.fullname" . -}}
{{- range $key, $value := .Values.configEnvs }}
- name: {{ $key }}
valueFrom:
configMapKeyRef:
name: {{ $fullname }}
key: {{ $key }}
{{- end }}
{{- range $key, $value := .Values.secretEnvs }}
- name: {{ $key }}
valueFrom:
secretKeyRef:
name: {{ $fullname }}
key: {{ $key }}
{{- end }}
{{- end -}}
64 changes: 64 additions & 0 deletions share/templates/beat-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{{- if .Values.beat.enabled -}}
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: {{ template "share.beat.fullname" . }}
labels:
app: {{ template "share.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
component: "{{ .Values.beat.name }}"
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: {{ template "share.name" . }}
component: "{{ .Values.beat.name }}"
release: {{ .Release.Name }}
annotations:
{{- include "share.deploymentAnnotations" . | nindent 8 }}
spec:
affinity:
{{- if .Values.beat.additionalAffinities }}
{{- toYaml .Values.beat.additionalAffinities | nindent 8 }}
{{- end }}
containers:
- name: {{ .Values.beat.name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
command:
- /bin/sh
- -c
- |-
PREFIX=''
if [ -f /code/newrelic.ini ]; then
PREFIX='newrelic-admin run-program'
fi
$PREFIX gosu www-data celery beat --app project \
--loglevel "{{ .Values.beat.logLevel }}" --pidfile=
env:
{{- include "share.environment" . | nindent 12 }}
{{- range $key, $value := .Values.beat.env }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}
volumeMounts:
{{- if .Values.volumeMounts }}
{{- toYaml .Values.volumeMounts | nindent 12 }}
{{- end }}
{{- if .Values.beat.resources }}
resources:
{{- toYaml .Values.beat.resources | nindent 12 }}
{{- end }}
volumes:
- name: config
configMap:
name: {{ template "share.fullname" . }}
- name: secret
secret:
secretName: {{ template "share.fullname" . }}
{{- end -}}
Loading

0 comments on commit 6826aeb

Please sign in to comment.