From ea95f0a9129fa127fcc9ceb5a2465c3b7269d4fa Mon Sep 17 00:00:00 2001 From: Charlie Drage Date: Thu, 1 Jun 2017 15:35:05 -0400 Subject: [PATCH] Update documentation to reflect quickstart Adds quickstart.md from the kompose.io site as well as incorporates changes so that you can update the index page of Kompose.io via quickstart.md --- docs/README.md | 6 +-- docs/quickstart.md | 116 ++++++++++++++++++++++++++++++++++++++++++++ script/sync-docs.sh | 5 +- 3 files changed, 123 insertions(+), 4 deletions(-) create mode 100644 docs/quickstart.md diff --git a/docs/README.md b/docs/README.md index 7776cfe2..3a1dfe22 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,7 @@ # Kompose Documentation - -* [User Guide](user-guide.md) * [Architecture](architecture.md) +* [Conversion](conversion.md) * [Development](development.md) - +* [Setup](setup.md) +* [User Guide](user-guide.md) diff --git a/docs/quickstart.md b/docs/quickstart.md new file mode 100644 index 00000000..56886fc2 --- /dev/null +++ b/docs/quickstart.md @@ -0,0 +1,116 @@ +--- +layout: default +--- + +# Kubernetes + Compose = Kompose + +What's Kompose? It's a conversion tool for all things compose (namely Docker Compose) to container orchestrators (Kubernetes or OpenShift). + +Whether you have a `docker-compose.yaml` or a `docker-compose.dab`, it doesn't matter. Kompose will get you up-and-running on Kubernetes. + +In three simple steps, we'll take you from Docker Compose to Kubernetes. + +__1. Take a sample docker-compose.yaml file__ + +```yaml +version: "2" + +services: + + redis-master: + image: gcr.io/google_containers/redis:e2e + ports: + - "6379" + + redis-slave: + image: gcr.io/google_samples/gb-redisslave:v1 + ports: + - "6379" + environment: + - GET_HOSTS_FROM=dns + + frontend: + image: gcr.io/google-samples/gb-frontend:v4 + ports: + - "80:80" + environment: + - GET_HOSTS_FROM=dns + labels: + kompose.service.type: LoadBalancer +``` + +__2. Run `kompose up` in the same directory__ + +```bash +▶ kompose up +We are going to create Kubernetes Deployments, Services and PersistentVolumeClaims for your Dockerized application. +If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead. + +INFO Successfully created Service: redis +INFO Successfully created Service: web +INFO Successfully created Deployment: redis +INFO Successfully created Deployment: web + +Your application has been deployed to Kubernetes. You can run 'kubectl get deployment,svc,pods,pvc' for details. +``` + +__Alternatively, you can run `kompose convert` and deploy with `kubectl`__ + +__2.1. Run `kompose convert` in the same directory__ + +```bash +▶ kompose convert +INFO file "frontend-service.yaml" created +INFO file "redis-master-service.yaml" created +INFO file "redis-slave-service.yaml" created +INFO file "frontend-deployment.yaml" created +INFO file "redis-master-deployment.yaml" created +INFO file "redis-slave-deployment.yaml" created +``` + +__2.2. And start it on Kubernetes!__ + +```bash +▶ kubectl create -f frontend-service.yaml,redis-master-service.yaml,redis-slave-service.yaml,frontend-deployment.yaml,redis-master-deployment.yaml,redis-slave-deployment.yaml +service "frontend" created +service "redis-master" created +service "redis-slave" created +deployment "frontend" created +deployment "redis-master" created +deployment "redis-slave" created +``` + +__3. View the newly deployed service__ + +Now that your service has been deployed, let's access it. + +If you're already using `minikube` for your development process: + +```bash +minikube service frontend +``` + +Otherwise, let's look up what IP your service is using! + +```sh +▶ kubectl describe svc frontend +Name: frontend +Namespace: default +Labels: service=frontend +Selector: service=frontend +Type: LoadBalancer +IP: 10.0.0.183 +LoadBalancer Ingress: 123.45.67.89 +Port: 80 80/TCP +NodePort: 80 31144/TCP +Endpoints: 172.17.0.4:80 +Session Affinity: None +No events. + +``` + +If you're using a cloud provider, your IP will be listed next to `LoadBalancer Ingress`. + +```sh +▶ curl http://123.45.67.89 +``` diff --git a/script/sync-docs.sh b/script/sync-docs.sh index 0242d532..1f372827 100755 --- a/script/sync-docs.sh +++ b/script/sync-docs.sh @@ -50,9 +50,12 @@ permalink: /$name/ done cd .. -# remove README.md from docs folder as it isn't relevant +# Remove README.md from docs folder as it isn't relevant rm docs/README.md +# Use quickstart.md instead as the main index page +mv docs/quickstart.md index.md + # add relevant user information git config user.name "$DOCS_USER"