Merge pull request #337 from technosophos/doc/304-readme

docs(README): update README in light of merger
pull/395/head
Matt Butcher 9 years ago
commit a0988c89ae

@ -1,43 +1,13 @@
# Deployment Manager # Helm
[![Circle CI](https://circleci.com/gh/kubernetes/helm.svg?style=svg)](https://circleci.com/gh/kubernetes/helm) [![Go Report Card](http://goreportcard.com/badge/kubernetes/helm)](http://goreportcard.com/report/kubernetes/helm) [![Circle CI](https://circleci.com/gh/kubernetes/helm.svg?style=svg)](https://circleci.com/gh/kubernetes/helm) [![Go Report Card](http://goreportcard.com/badge/kubernetes/helm)](http://goreportcard.com/report/kubernetes/helm)
Deployment Manager (DM) `dm` makes it easy to create, describe, update and Helm makes it easy to create, describe, update and
delete Kubernetes resources using declarative configuration. A configuration is delete Kubernetes resources using declarative configuration. A configuration is
just a `YAML` file that configures Kubernetes resources or supplies parameters just a `YAML` file that configures Kubernetes resources or supplies parameters
to templates. Templates are just YAML files with [Jinja](http://jinja.pocoo.org/) to templates.
mark up or Python scripts.
For example, this simple configuration deploys the Guestbook example: Helm Manager runs server side, in your Kubernetes cluster, so it can tell you what templates
```
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
```
It uses two templates. The front end is a
[replicated service](https://github.com/kubernetes/application-dm-templates/tree/master/common/replicatedservice/v1),
which creates a service and replication controller with matching selectors, and
the back end is a
[Redis cluster](https://github.com/kubernetes/application-dm-templates/tree/master/storage/redis/v1),
which creates a Redis master and two Redis slaves.
Templates can use other templates, making it easy to create larger structures
from smaller building blocks. For example, the Redis template uses the replicated
service template to create the Redis master, and then again to create each Redis
slave.
DM runs server side, in your Kubernetes cluster, so it can tell you what templates
you've instantiated there, what resources they created, and even how the resources you've instantiated there, what resources they created, and even how the resources
are organized. So, for example, you can ask questions like: are organized. So, for example, you can ask questions like:
@ -45,22 +15,12 @@ are organized. So, for example, you can ask questions like:
* What Redis master and slave services are part of this Redis instance? * What Redis master and slave services are part of this Redis instance?
* What pods are part of this Redis slave? * What pods are part of this Redis slave?
Because DM stores its state in the cluster, not on your workstation, you can ask The official Helm repository of charts is available in the
those questions from any client at any time. [kubernetes/charts](https://github.com/kubernetes/charts) repository.
Templates live in ordinary Github repositories called template registries. See Please hang out with us in [the Slack chat room](https://kubernetes.slack.com/messages/helm/).
the [Kubernetes Template Registry](https://github.com/kubernetes/application-dm-templates)
for curated Kubernetes applications using Deployment Manager templates.
For more information about configurations and templates, see the ## Installing Helm
[design document](docs/design/design.md#types).
Please hang out with us in
[the Slack chat room](https://kubernetes.slack.com/messages/sig-configuration/)
and/or [the Google Group](https://groups.google.com/forum/#!forum/kubernetes-sig-config)
for the Kubernetes configuration SIG.
## Installing Deployment Manager
Note: if you're exploring or using the project, you'll probably want to pull Note: if you're exploring or using the project, you'll probably want to pull
(the latest release)[https://github.com/kubernetes/helm/releases/latest], (the latest release)[https://github.com/kubernetes/helm/releases/latest],
@ -69,13 +29,10 @@ since there may be undiscovered or unresolved issues at HEAD.
From a Linux or Mac OS X client: From a Linux or Mac OS X client:
``` ```
curl -s https://raw.githubusercontent.com/kubernetes/helm/master/get-install.sh | sh $ git clone https://github.com/kubernetes/deployment-manager.git
``` $ cd deployment-manager
$ make build
and then install the DM services into your Kubernetes cluster: $ bin/helm dm install
```
helm dm install
``` ```
That's it. You can now use `kubectl` to see DM running in your cluster: That's it. You can now use `kubectl` to see DM running in your cluster:
@ -88,7 +45,7 @@ If you see expandybird-service, manager-service, resourcifier-service, and
expandybird-rc, manager-rc and resourcifier-rc with pods that are READY, then DM expandybird-rc, manager-rc and resourcifier-rc with pods that are READY, then DM
is up and running! is up and running!
## Using Deployment Manager ## Using Helm
Run a Kubernetes proxy to allow the dm client to connect to the cluster: Run a Kubernetes proxy to allow the dm client to connect to the cluster:
@ -96,51 +53,22 @@ Run a Kubernetes proxy to allow the dm client to connect to the cluster:
kubectl proxy --port=8001 --namespace=dm & kubectl proxy --port=8001 --namespace=dm &
``` ```
### Deploy an app ## Uninstalling Helm from Kubernetes
To deploy a simple guestbook app:
``` You can uninstall Deployment Manager using the same configuration:
$ dm deploy examples/guestbook/guestbook.yaml
$ kubectl get service
```
The `frontend-service` should have an external IP that you can navigate to in
your browser to play with.
For more information about this example, see [examples/guestbook/README.md](examples/guestbook/README.md)
### Deploying a template
To deploy a redis template from the [Kubernetes
Template Registry](https://github.com/kubernetes/application-dm-templates):
``` ```
dm --properties workers=3 deploy storage/redis:v1 helm dm uninstall
``` ```
For more information about deploying templates from a template registry or adding ## Installing Charts
types to a template registry, see
[the template registry documentation](docs/templates/registry.md).
## Uninstalling Deployment Manager
You can uninstall Deployment Manager using the same configuration: To quickly deploy a chart, you can use the Helm command line tool:
``` ```
helm dm delete $ helm deploy CHARTNAME
``` ```
## Building the Container Images
This project runs Deployment Manager on Kubernetes as three replicated services.
By default, `helm` uses prebuilt images stored in Google Container Registry
to install them. However, you can build your own container images and push them
to your own project in the Google Container Registry:
1. Set the environment variable `PROJECT` to the name of a project known to
GCloud.
1. Run `make push`
## Design of Deployment Manager ## Design of Deployment Manager
There is a more detailed [design document](docs/design/design.md) available. There is a more detailed [design document](docs/design/design.md) available.
@ -158,6 +86,6 @@ We use the same [workflow](https://github.com/kubernetes/kubernetes/blob/master/
[License](LICENSE) and [Contributor License Agreement](CONTRIBUTING.md) as the main Kubernetes repository. [License](LICENSE) and [Contributor License Agreement](CONTRIBUTING.md) as the main Kubernetes repository.
## Relationship to Google Cloud Platform ## Relationship to Google Cloud Platform
DM uses the same concepts and languages as DM uses many of the same concepts and languages as
[Google Cloud Deployment Manager](https://cloud.google.com/deployment-manager/overview), [Google Cloud Deployment Manager](https://cloud.google.com/deployment-manager/overview),
but creates resources in Kubernetes clusters, not in Google Cloud Platform projects. but creates resources in Kubernetes clusters, not in Google Cloud Platform projects.

Loading…
Cancel
Save