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