mirror of https://github.com/helm/helm
parent
bddebc9428
commit
9550aefd73
@ -1,9 +0,0 @@
|
|||||||
The testdata directory here holds charts that match the specification.
|
|
||||||
|
|
||||||
The `fromnitz/` directory contains a chart that matches the chart
|
|
||||||
specification.
|
|
||||||
|
|
||||||
The `frobnitz-0.0.1.tgz` file is an archive of the `frobnitz` directory.
|
|
||||||
|
|
||||||
The `ill` chart and directory is a chart that is not 100% compatible,
|
|
||||||
but which should still be parseable.
|
|
Binary file not shown.
@ -1,27 +0,0 @@
|
|||||||
name: frobnitz
|
|
||||||
description: This is a frobniz.
|
|
||||||
version: 1.2.3-alpha.1+12345
|
|
||||||
keywords:
|
|
||||||
- frobnitz
|
|
||||||
- sprocket
|
|
||||||
- dodad
|
|
||||||
maintainers:
|
|
||||||
- name: The Helm Team
|
|
||||||
email: helm@example.com
|
|
||||||
- name: Someone Else
|
|
||||||
email: nobody@example.com
|
|
||||||
source:
|
|
||||||
- https://example.com/foo/bar
|
|
||||||
home: http://example.com
|
|
||||||
dependencies:
|
|
||||||
- name: thingerbob
|
|
||||||
version: ^3
|
|
||||||
location: https://example.com/charts/thingerbob-3.2.1.tgz
|
|
||||||
environment:
|
|
||||||
- name: Kubernetes
|
|
||||||
version: ~1.1
|
|
||||||
extensions:
|
|
||||||
- extensions/v1beta1
|
|
||||||
- extensions/v1beta1/daemonset
|
|
||||||
apiGroups:
|
|
||||||
- 3rdParty
|
|
@ -1 +0,0 @@
|
|||||||
THIS IS PLACEHOLDER TEXT.
|
|
@ -1,11 +0,0 @@
|
|||||||
# Frobnitz
|
|
||||||
|
|
||||||
This is an example chart.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
This is an example. It has no usage.
|
|
||||||
|
|
||||||
## Development
|
|
||||||
|
|
||||||
For developer info, see the top-level repository.
|
|
@ -1 +0,0 @@
|
|||||||
This is a placeholder for documentation.
|
|
@ -1 +0,0 @@
|
|||||||
# Placeholder.
|
|
Before Width: | Height: | Size: 374 B |
@ -1,12 +0,0 @@
|
|||||||
# Google Cloud Deployment Manager template
|
|
||||||
resources:
|
|
||||||
- name: nfs-disk
|
|
||||||
type: compute.v1.disk
|
|
||||||
properties:
|
|
||||||
zone: us-central1-b
|
|
||||||
sizeGb: 200
|
|
||||||
- name: mysql-disk
|
|
||||||
type: compute.v1.disk
|
|
||||||
properties:
|
|
||||||
zone: us-central1-b
|
|
||||||
sizeGb: 200
|
|
@ -1,72 +0,0 @@
|
|||||||
#helm:generate dm_template
|
|
||||||
{% set PROPERTIES = properties or {} %}
|
|
||||||
{% set PROJECT = PROPERTIES['project'] or 'dm-k8s-testing' %}
|
|
||||||
{% set NFS_SERVER = PROPERTIES['nfs-server'] or {} %}
|
|
||||||
{% set NFS_SERVER_IP = NFS_SERVER['ip'] or '10.0.253.247' %}
|
|
||||||
{% set NFS_SERVER_PORT = NFS_SERVER['port'] or 2049 %}
|
|
||||||
{% set NFS_SERVER_DISK = NFS_SERVER['disk'] or 'nfs-disk' %}
|
|
||||||
{% set NFS_SERVER_DISK_FSTYPE = NFS_SERVER['fstype'] or 'ext4' %}
|
|
||||||
{% set NGINX = PROPERTIES['nginx'] or {} %}
|
|
||||||
{% set NGINX_PORT = 80 %}
|
|
||||||
{% set NGINX_REPLICAS = NGINX['replicas'] or 2 %}
|
|
||||||
{% set WORDPRESS_PHP = PROPERTIES['wordpress-php'] or {} %}
|
|
||||||
{% set WORDPRESS_PHP_REPLICAS = WORDPRESS_PHP['replicas'] or 2 %}
|
|
||||||
{% set WORDPRESS_PHP_PORT = WORDPRESS_PHP['port'] or 9000 %}
|
|
||||||
{% set MYSQL = PROPERTIES['mysql'] or {} %}
|
|
||||||
{% set MYSQL_PORT = MYSQL['port'] or 3306 %}
|
|
||||||
{% set MYSQL_PASSWORD = MYSQL['password'] or 'mysql-password' %}
|
|
||||||
{% set MYSQL_DISK = MYSQL['disk'] or 'mysql-disk' %}
|
|
||||||
{% set MYSQL_DISK_FSTYPE = MYSQL['fstype'] or 'ext4' %}
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- name: nfs
|
|
||||||
type: github.com/kubernetes/application-dm-templates/storage/nfs:v1
|
|
||||||
properties:
|
|
||||||
ip: {{ NFS_SERVER_IP }}
|
|
||||||
port: {{ NFS_SERVER_PORT }}
|
|
||||||
disk: {{ NFS_SERVER_DISK }}
|
|
||||||
fstype: {{NFS_SERVER_DISK_FSTYPE }}
|
|
||||||
- name: nginx
|
|
||||||
type: github.com/kubernetes/application-dm-templates/common/replicatedservice:v2
|
|
||||||
properties:
|
|
||||||
service_port: {{ NGINX_PORT }}
|
|
||||||
container_port: {{ NGINX_PORT }}
|
|
||||||
replicas: {{ NGINX_REPLICAS }}
|
|
||||||
external_service: true
|
|
||||||
image: gcr.io/{{ PROJECT }}/nginx:latest
|
|
||||||
volumes:
|
|
||||||
- mount_path: /var/www/html
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: nfs
|
|
||||||
- name: mysql
|
|
||||||
type: github.com/kubernetes/application-dm-templates/common/replicatedservice:v2
|
|
||||||
properties:
|
|
||||||
service_port: {{ MYSQL_PORT }}
|
|
||||||
container_port: {{ MYSQL_PORT }}
|
|
||||||
replicas: 1
|
|
||||||
image: mysql:5.6
|
|
||||||
env:
|
|
||||||
- name: MYSQL_ROOT_PASSWORD
|
|
||||||
value: {{ MYSQL_PASSWORD }}
|
|
||||||
volumes:
|
|
||||||
- mount_path: /var/lib/mysql
|
|
||||||
gcePersistentDisk:
|
|
||||||
pdName: {{ MYSQL_DISK }}
|
|
||||||
fsType: {{ MYSQL_DISK_FSTYPE }}
|
|
||||||
- name: wordpress-php
|
|
||||||
type: github.com/kubernetes/application-dm-templates/common/replicatedservice:v2
|
|
||||||
properties:
|
|
||||||
service_name: wordpress-php
|
|
||||||
service_port: {{ WORDPRESS_PHP_PORT }}
|
|
||||||
container_port: {{ WORDPRESS_PHP_PORT }}
|
|
||||||
replicas: 2
|
|
||||||
image: wordpress:fpm
|
|
||||||
env:
|
|
||||||
- name: WORDPRESS_DB_PASSWORD
|
|
||||||
value: {{ MYSQL_PASSWORD }}
|
|
||||||
- name: WORDPRESS_DB_HOST
|
|
||||||
value: mysql-service
|
|
||||||
volumes:
|
|
||||||
- mount_path: /var/www/html
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: nfs
|
|
@ -1,69 +0,0 @@
|
|||||||
info:
|
|
||||||
title: Wordpress
|
|
||||||
description: |
|
|
||||||
Defines a Wordpress website by defining four replicated services: an NFS service, an nginx service, a wordpress-php service, and a MySQL service.
|
|
||||||
|
|
||||||
The nginx service and the Wordpress-php service both use NFS to share files.
|
|
||||||
|
|
||||||
properties:
|
|
||||||
project:
|
|
||||||
type: string
|
|
||||||
default: dm-k8s-testing
|
|
||||||
description: Project location to load the images from.
|
|
||||||
nfs-service:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
ip:
|
|
||||||
type: string
|
|
||||||
default: 10.0.253.247
|
|
||||||
description: The IP of the NFS service.
|
|
||||||
port:
|
|
||||||
type: int
|
|
||||||
default: 2049
|
|
||||||
description: The port of the NFS service.
|
|
||||||
disk:
|
|
||||||
type: string
|
|
||||||
default: nfs-disk
|
|
||||||
description: The name of the persistent disk the NFS service uses.
|
|
||||||
fstype:
|
|
||||||
type: string
|
|
||||||
default: ext4
|
|
||||||
description: The filesystem the disk of the NFS service uses.
|
|
||||||
nginx:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
replicas:
|
|
||||||
type: int
|
|
||||||
default: 2
|
|
||||||
description: The number of replicas for the nginx service.
|
|
||||||
wordpress-php:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
replicas:
|
|
||||||
type: int
|
|
||||||
default: 2
|
|
||||||
description: The number of replicas for the wordpress-php service.
|
|
||||||
port:
|
|
||||||
type: int
|
|
||||||
default: 9000
|
|
||||||
description: The port the wordpress-php service runs on.
|
|
||||||
mysql:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
port:
|
|
||||||
type: int
|
|
||||||
default: 3306
|
|
||||||
description: The port the MySQL service runs on.
|
|
||||||
password:
|
|
||||||
type: string
|
|
||||||
default: mysql-password
|
|
||||||
description: The root password of the MySQL service.
|
|
||||||
disk:
|
|
||||||
type: string
|
|
||||||
default: mysql-disk
|
|
||||||
description: The name of the persistent disk the MySQL service uses.
|
|
||||||
fstype:
|
|
||||||
type: string
|
|
||||||
default: ext4
|
|
||||||
description: The filesystem the disk of the MySQL service uses.
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
imports:
|
|
||||||
- path: wordpress.jinja
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- name: wordpress
|
|
||||||
type: wordpress.jinja
|
|
@ -1,127 +0,0 @@
|
|||||||
T**Testing fork of the guestbook example.**
|
|
||||||
|
|
||||||
# Guestbook Example
|
|
||||||
|
|
||||||
Welcome to the Guestbook example. It shows you how to build and reuse
|
|
||||||
parameterized templates.
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
First, make sure DM is installed in your Kubernetes cluster and that the
|
|
||||||
Guestbook example is deployed by following the instructions in the top level
|
|
||||||
[README.md](../../README.md).
|
|
||||||
|
|
||||||
## Understanding the Guestbook example
|
|
||||||
|
|
||||||
Let's take a closer look at the configuration used by the Guestbook example.
|
|
||||||
|
|
||||||
### Replicated services
|
|
||||||
|
|
||||||
The typical design pattern for microservices in Kubernetes is to create a
|
|
||||||
replication controller and a service with the same selector, so that the service
|
|
||||||
exposes ports from the pods managed by the replication controller.
|
|
||||||
|
|
||||||
We have created a parameterized template for this kind of replicated service
|
|
||||||
called [Replicated Service](../../templates/replicatedservice/v1), and we use it
|
|
||||||
three times in the Guestbook example.
|
|
||||||
|
|
||||||
The template is defined by a
|
|
||||||
[Python script](../../templates/replicatedservice/v1/replicatedservice.py). It
|
|
||||||
also has a [schema](../../templates/replicatedservice/v1/replicatedservice.py.schema).
|
|
||||||
Schemas are optional. If provided, they are used to validate template invocations
|
|
||||||
that appear in configurations.
|
|
||||||
|
|
||||||
For more information about templates and schemas, see the
|
|
||||||
[design document](../../docs/design/design.md#templates).
|
|
||||||
|
|
||||||
### The Guestbook application
|
|
||||||
The Guestbook application consists of 2 microservices: a front end and a Redis
|
|
||||||
cluster.
|
|
||||||
|
|
||||||
#### The front end
|
|
||||||
|
|
||||||
The front end is a replicated service with 3 replicas:
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: frontend
|
|
||||||
type: https://raw.githubusercontent.com/kubernetes/deployment-manager/master/templates/replicatedservice/v1/replicatedservice.py
|
|
||||||
properties:
|
|
||||||
service_port: 80
|
|
||||||
container_port: 80
|
|
||||||
external_service: true
|
|
||||||
replicas: 3
|
|
||||||
image: gcr.io/google_containers/example-guestbook-php-redis:v3
|
|
||||||
```
|
|
||||||
|
|
||||||
(Note that we use the URL for a specific version of the template replicatedservice.py,
|
|
||||||
not just the template name.)
|
|
||||||
|
|
||||||
#### The Redis cluster
|
|
||||||
|
|
||||||
The Redis cluster consists of two replicated services: a master with a single replica
|
|
||||||
and the slaves with 2 replicas. It's defined by [this template](../../templates/redis/v1/redis.jinja),
|
|
||||||
which is a [Jinja](http://jinja.pocoo.org/) file with a [schema](../../templates/redis/v1/redis.jinja.schema).
|
|
||||||
|
|
||||||
```
|
|
||||||
{% set REDIS_PORT = 6379 %}
|
|
||||||
{% set WORKERS = properties['workers'] or 2 %}
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- name: redis-master
|
|
||||||
type: https://raw.githubusercontent.com/kubernetes/deployment-manager/master/templates/replicatedservice/v1/replicatedservice.py
|
|
||||||
properties:
|
|
||||||
# This has to be overwritten since service names are hard coded in the code
|
|
||||||
service_name: redis-master
|
|
||||||
service_port: {{ REDIS_PORT }}
|
|
||||||
target_port: {{ REDIS_PORT }}
|
|
||||||
container_port: {{ REDIS_PORT }}
|
|
||||||
replicas: 1
|
|
||||||
container_name: master
|
|
||||||
image: redis
|
|
||||||
|
|
||||||
- name: redis-slave
|
|
||||||
type: https://raw.githubusercontent.com/kubernetes/deployment-manager/master/templates/replicatedservice/v1/replicatedservice.py
|
|
||||||
properties:
|
|
||||||
# This has to be overwritten since service names are hard coded in the code
|
|
||||||
service_name: redis-slave
|
|
||||||
service_port: {{ REDIS_PORT }}
|
|
||||||
container_port: {{ REDIS_PORT }}
|
|
||||||
replicas: {{ WORKERS }}
|
|
||||||
container_name: worker
|
|
||||||
image: kubernetes/redis-slave:v2
|
|
||||||
# An example of how to specify env variables.
|
|
||||||
env:
|
|
||||||
- name: GET_HOSTS_FROM
|
|
||||||
value: env
|
|
||||||
- name: REDIS_MASTER_SERVICE_HOST
|
|
||||||
value: redis-master
|
|
||||||
```
|
|
||||||
|
|
||||||
### Displaying types
|
|
||||||
|
|
||||||
You can see both the both primitive types and the templates you've deployed to the
|
|
||||||
cluster using the `deployed-types` command:
|
|
||||||
|
|
||||||
```
|
|
||||||
dm deployed-types
|
|
||||||
|
|
||||||
["Service","ReplicationController","redis.jinja","https://raw.githubusercontent.com/kubernetes/deployment-manager/master/templates/replicatedservice/v1/replicatedservice.py"]
|
|
||||||
```
|
|
||||||
|
|
||||||
This output shows 2 primitive types (Service and ReplicationController), and 2
|
|
||||||
templates (redis.jinja and one imported from github named replicatedservice.py).
|
|
||||||
|
|
||||||
You can also see where a specific type is being used with the `deployed-instances` command:
|
|
||||||
|
|
||||||
```
|
|
||||||
dm deployed-instances Service
|
|
||||||
[{"name":"frontend-service","type":"Service","deployment":"guestbook4","manifest":"manifest-1446682551242763329","path":"$.resources[0].resources[0]"},{"name":"redis-master","type":"Service","deployment":"guestbook4","manifest":"manifest-1446682551242763329","path":"$.resources[1].resources[0].resources[0]"},{"name":"redis-slave","type":"Service","deployment":"guestbook4","manifest":"manifest-1446682551242763329","path":"$.resources[1].resources[1].resources[0]"}]
|
|
||||||
```
|
|
||||||
|
|
||||||
This output describes the deployment and manifest, as well as the JSON paths to
|
|
||||||
the instances of the type within the layout.
|
|
||||||
|
|
||||||
For more information about deployments, manifests and layouts, see the
|
|
||||||
[design document](../../docs/design/design.md#api-model).
|
|
||||||
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
resources:
|
|
||||||
- name: frontend
|
|
||||||
type: github.com/kubernetes/application-dm-templates/common/replicatedservice:v1
|
|
||||||
properties:
|
|
||||||
service_port: 80
|
|
||||||
container_port: 80
|
|
||||||
external_service: true
|
|
||||||
replicas: 3
|
|
||||||
image: gcr.io/google_containers/example-guestbook-php-redis:v3
|
|
||||||
- name: redis
|
|
||||||
type: github.com/kubernetes/application-dm-templates/storage/redis:v1
|
|
||||||
properties: null
|
|
Loading…
Reference in new issue