mirror of https://github.com/helm/helm
This adds an nginx chart that shows off more of the template system's capabilities.pull/860/head
parent
0acbcdd5cc
commit
15571a5a13
@ -0,0 +1,5 @@
|
||||
# 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
|
||||
.git
|
@ -0,0 +1,14 @@
|
||||
name: nginx
|
||||
description: A basic NGINX HTTP server
|
||||
version: 0.1.0
|
||||
keywords:
|
||||
- http
|
||||
- nginx
|
||||
- www
|
||||
- web
|
||||
home: "https://github.com/kubernetes/helm"
|
||||
sources:
|
||||
- "https://hub.docker.com/_/nginx/"
|
||||
maintainers:
|
||||
- name: technosophos
|
||||
email: mbutcher@deis.com
|
@ -0,0 +1,29 @@
|
||||
# nginx: An advanced example chart
|
||||
|
||||
This Helm chart provides examples of some of Helm's more powerful
|
||||
features.
|
||||
|
||||
**This is not a production-grade chart. It is an example.**
|
||||
|
||||
The chart installs a simple nginx server according to the following
|
||||
pattern:
|
||||
|
||||
- A `ConfigMap` is used to store the files the server will serve.
|
||||
(`templates/configmap.yaml`)
|
||||
- A `Deployment` is used to create a Replica Set of nginx pods.
|
||||
(`templates/deployment.yaml`)
|
||||
- A `Service` is used to create a gateway to the pods running in the
|
||||
replica set (`templates/svc.yaml`)
|
||||
|
||||
The `values.yaml` exposes a few of the configuration options in the
|
||||
charts, though there are some that are not exposed there (like
|
||||
`.image`).
|
||||
|
||||
The `templates/_helpers.tpl` file contains helper templates. The leading
|
||||
underscore (`_`) on the filename is semantic. It tells the template renderer
|
||||
that this file does not contain a manifest. That file declares some
|
||||
templates that are used elsewhere in the chart.
|
||||
|
||||
You can deploy this chart with `helm install docs/examples/nginx`. Or
|
||||
you can see how this chart would render with `helm install --dry-run
|
||||
--debug docs/examples/nginx`.
|
@ -0,0 +1,13 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{define "name"}}{{default "nginx" .nameOverride | trunc 24 }}{{end}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
|
||||
We truncate at 24 chars because some Kubernetes name fields are limited to this
|
||||
(by the DNS naming spec).
|
||||
*/}}
|
||||
{{define "fullname"}}{{.Release.Name}}-{{default "nginx" .nameOverride | trunc 24 }}{{end}}
|
@ -0,0 +1,14 @@
|
||||
# This is a simple example of using a config map to create a single page
|
||||
# static site.
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{template "fullname" .}}
|
||||
labels:
|
||||
release: {{.Release.Name}}
|
||||
app: {{template "fullname" .}}
|
||||
data:
|
||||
# When the config map is mounted as a volume, these will be created as
|
||||
# files.
|
||||
index.html: {{default "Hello" .index | squote}}
|
||||
test.txt: test
|
@ -0,0 +1,39 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
# This uses a "fullname" template (see _helpers)
|
||||
# Basing names on .Release.Name means that the same chart can be installed
|
||||
# multiple times into the same namespace.
|
||||
name: {{template "fullname" .}}
|
||||
labels:
|
||||
heritage: helm
|
||||
# This makes it easy to search using kubectl
|
||||
release: {{.Release.Name}}
|
||||
# This makes it easy to audit chart usage.
|
||||
chart: {{.Chart.Name}}-{{.Chart.Version}}
|
||||
spec:
|
||||
replicas: {{default 1 .replicaCount}}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{template "fullname" .}}
|
||||
release: {{.Release.Name}}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{template "fullname" .}}
|
||||
# Making image configurable is not necessary. Making imageTag configurable
|
||||
# is a nice option for the user. Especially in the strange cases like
|
||||
# nginx where the base distro is determined by the tag. Using :latest
|
||||
# is frowned upon, using :stable isn't that great either.
|
||||
image: "{{default "nginx" .image}}:{{default "stable-alpine" .imageTag}}"
|
||||
imagePullPolicy: {{default "IfNotPresent" .pullPolicy}}
|
||||
ports:
|
||||
- containerPort: 80
|
||||
# This (and the volumes section below) mount the config map as a volume.
|
||||
volumeMounts:
|
||||
- mountPath: /usr/share/nginx/html
|
||||
name: wwwdata-volume
|
||||
volumes:
|
||||
- name: wwwdata-volume
|
||||
configMap:
|
||||
name: {{template "fullname" .}}
|
@ -0,0 +1,17 @@
|
||||
# This is a service gateway to the replica set created by the deployment.
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{template "fullname" .}}
|
||||
labels:
|
||||
heritage: helm
|
||||
release: {{.Release.Name}}
|
||||
chart: {{.Chart.Name}}-{{.Chart.Version}}
|
||||
spec:
|
||||
ports:
|
||||
- port: {{default 80 .httpPort}}
|
||||
targetPort: 80
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app: {{template "fullname" .}}
|
@ -0,0 +1,16 @@
|
||||
# Default values for nginx.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare name/value pairs to be passed into your templates.
|
||||
|
||||
# See the list at https://hub.docker.com/r/library/nginx/tags/
|
||||
imageTag: "1.11.0"
|
||||
|
||||
# The port (defined on the service) to access the HTTP server.
|
||||
httpPort: 8888
|
||||
|
||||
# Number of nginx instances to run
|
||||
replicaCount: 1
|
||||
|
||||
index: >-
|
||||
<h1>Hello</h1>
|
||||
<p>This is a test</p>
|
Loading…
Reference in new issue