From 715bee6b3a04003bb210f35fc64dd9ca5bcde896 Mon Sep 17 00:00:00 2001 From: BC Broussard Date: Thu, 23 Apr 2015 08:27:25 -0700 Subject: [PATCH] Update examples/phabricator for v1beta3 --- examples/phabricator/README.md | 138 ++++++++++-------- .../phabricator/authenticator-controller.json | 51 ++++--- .../phabricator/phabricator-controller.json | 59 ++++---- examples/phabricator/phabricator-service.json | 28 +++- 4 files changed, 160 insertions(+), 116 deletions(-) diff --git a/examples/phabricator/README.md b/examples/phabricator/README.md index d5c6fc98316..b79fce563b2 100644 --- a/examples/phabricator/README.md +++ b/examples/phabricator/README.md @@ -15,7 +15,7 @@ $ hack/dev-build-and-up.sh ### Step One: Set up Cloud SQL instance -Follow the [official instructions](https://cloud.google.com/sql/docs/getting-started) to set up Cloud SQL instance. +Follow the [official instructions](https://cloud.google.com/sql/docs/getting-started) to set up Cloud SQL instance. In the remaining part of this example we will assume that your instance is named "phabricator-db", has IP 173.194.242.66 and the password is "1234". @@ -25,34 +25,41 @@ To start Phabricator server use the file `examples/phabricator/phabricator-contr ```js { - "id": "phabricator-controller", "kind": "ReplicationController", - "apiVersion": "v1beta1", - "desiredState": { - "replicas": 1, - "replicaSelector": {"name": "phabricator"}, - "podTemplate": { - "desiredState": { - "manifest": { - "version": "v1beta1", - "id": "phabricator-pod", - "containers": [{ - "name": "phabricator", - "image": "kubernetes/example-php-phabricator", - "env": [ - {"name": "MYSQL_SERVICE_IP", "value": "173.194.242.66"}, - {"name": "MYSQL_SERVICE_PORT", "value": "3306"}, - {"name": "MYSQL_PASSWORD", "value": "1234"}, - ], - "ports": [{"name": "http-server", "containerPort": 80}], - "imagePullPolicy": "Always" - }] - } - }, - "labels": { "name": "phabricator" } + "apiVersion": "v1beta3", + "metadata": { + "name": "phabricator-controller", + "labels": { + "name": "phabricator" } }, - "labels": {"name": "phabricator"} + "spec": { + "replicas": 1, + "selector": { + "name": "phabricator" + }, + "template": { + "metadata": { + "labels": { + "name": "phabricator" + } + }, + "spec": { + "containers": [ + { + "name": "phabricator", + "image": "fgrzadkowski/example-php-phabricator", + "ports": [ + { + "name": "http-server", + "containerPort": 80 + } + ] + } + ] + } + } + } } ``` @@ -82,7 +89,7 @@ me@workstation$ gcloud compute ssh --zone us-central1-b kubernetes-minion-2 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -54983bc33494 fgrzadkowski/phabricator:latest "/run.sh" 2 hours ago Up 2 hours k8s_phabricator.d6b45054_phabricator-controller-02qp4.default.api_eafb1e53-b6a9-11e4-b1ae-42010af05ea6_01c2c4ca +54983bc33494 fgrzadkowski/phabricator:latest "/run.sh" 2 hours ago Up 2 hours k8s_phabricator.d6b45054_phabricator-controller-02qp4.default.api_eafb1e53-b6a9-11e4-b1ae-42010af05ea6_01c2c4ca ``` (Note that initial `docker pull` may take a few minutes, depending on network conditions. During this time, the `get pods` command will return `Pending` because the container has not yet started ) @@ -110,34 +117,37 @@ To automate this process and make sure that a proper host is authorized even if ```js { - "id": "authenticator-controller", "kind": "ReplicationController", - "apiVersion": "v1beta1", - "desiredState": { - "replicas": 1, - "replicaSelector": {"name": "authenticator"}, - "podTemplate": { - "desiredState": { - "manifest": { - "version": "v1beta1", - "id": "authenticator-pod", - "containers": [{ - "name": "authenticator", - "image": "kubernetes/example-cloudsql-authenticator", - "env": [ - {"name": "SELECTOR", "value": "name=phabricator"}, - {"name": "CLOUDSQL_DB", "value": "phabricator-db"} - ], - "imagePullPolicy": "Always" - }], - } - }, - "labels": { "name": "authenticator" } + "apiVersion": "v1beta3", + "metadata": { + "name": "authenticator-controller", + "labels": { + "name": "authenticator" } }, - "labels": {"name": "authenticator"} + "spec": { + "replicas": 1, + "selector": { + "name": "authenticator" + }, + "template": { + "metadata": { + "labels": { + "name": "authenticator" + } + }, + "spec": { + "containers": [ + { + "name": "authenticator", + "image": "fgrzadkowski/example-cloudsql-authenticator" + } + ] + } + } + } } -``` +``` To create the pod run: @@ -163,14 +173,26 @@ Use the file `examples/phabricator/phabricator-service.json`: ```js { - "apiVersion": "v1beta1", "kind": "Service", - "id": "phabricator", - "port": 80, - "containerPort": "http-server", - "selector": { "name": "phabricator" }, - "createExternalLoadBalancer": true, - "publicIPs": ["107.178.210.6"] + "apiVersion": "v1beta3", + "metadata": { + "name": "phabricator" + }, + "spec": { + "ports": [ + { + "port": 80, + "targetPort": "http-server" + } + ], + "selector": { + "name": "phabricator" + }, + "createExternalLoadBalancer": true, + "publicIPs": [ + "107.178.210.6" + ] + } } ``` diff --git a/examples/phabricator/authenticator-controller.json b/examples/phabricator/authenticator-controller.json index 20c59a81d48..6c834e3a7f9 100644 --- a/examples/phabricator/authenticator-controller.json +++ b/examples/phabricator/authenticator-controller.json @@ -1,28 +1,31 @@ { - "id": "authenticator-controller", "kind": "ReplicationController", - "apiVersion": "v1beta1", - "desiredState": { - "replicas": 1, - "replicaSelector": {"name": "authenticator"}, - "podTemplate": { - "desiredState": { - "manifest": { - "version": "v1beta1", - "id": "authenticator-pod", - "containers": [{ - "name": "authenticator", - "image": "fgrzadkowski/example-cloudsql-authenticator", - "env": [ - {"name": "SELECTOR", "value": "name=phabricator"}, - {"name": "CLOUDSQL_DB", "value": "phabricator-db"} - ], - "imagePullPolicy": "Always" - }] - } - }, - "labels": { "name": "authenticator" } + "apiVersion": "v1beta3", + "metadata": { + "name": "authenticator-controller", + "labels": { + "name": "authenticator" } }, - "labels": {"name": "authenticator"} -} + "spec": { + "replicas": 1, + "selector": { + "name": "authenticator" + }, + "template": { + "metadata": { + "labels": { + "name": "authenticator" + } + }, + "spec": { + "containers": [ + { + "name": "authenticator", + "image": "fgrzadkowski/example-cloudsql-authenticator" + } + ] + } + } + } +} \ No newline at end of file diff --git a/examples/phabricator/phabricator-controller.json b/examples/phabricator/phabricator-controller.json index 78ea3612ea4..795f0b24f0d 100644 --- a/examples/phabricator/phabricator-controller.json +++ b/examples/phabricator/phabricator-controller.json @@ -1,30 +1,37 @@ { - "id": "phabricator-controller", "kind": "ReplicationController", - "apiVersion": "v1beta1", - "desiredState": { - "replicas": 1, - "replicaSelector": {"name": "phabricator"}, - "podTemplate": { - "desiredState": { - "manifest": { - "version": "v1beta1", - "id": "phabricator-pod", - "containers": [{ - "name": "phabricator", - "image": "fgrzadkowski/example-php-phabricator", - "env": [ - {"name": "MYSQL_SERVICE_IP", "value": "173.194.242.66"}, - {"name": "MYSQL_SERVICE_PORT", "value": "3306"}, - {"name": "MYSQL_PASSWORD", "value": "1234"} - ], - "ports": [{"name": "http-server", "containerPort": 80}], - "imagePullPolicy": "Always" - }] - } - }, - "labels": { "name": "phabricator" } + "apiVersion": "v1beta3", + "metadata": { + "name": "phabricator-controller", + "labels": { + "name": "phabricator" } }, - "labels": {"name": "phabricator"} -} + "spec": { + "replicas": 1, + "selector": { + "name": "phabricator" + }, + "template": { + "metadata": { + "labels": { + "name": "phabricator" + } + }, + "spec": { + "containers": [ + { + "name": "phabricator", + "image": "fgrzadkowski/example-php-phabricator", + "ports": [ + { + "name": "http-server", + "containerPort": 80 + } + ] + } + ] + } + } + } +} \ No newline at end of file diff --git a/examples/phabricator/phabricator-service.json b/examples/phabricator/phabricator-service.json index 2edcf6136f2..8448d720552 100644 --- a/examples/phabricator/phabricator-service.json +++ b/examples/phabricator/phabricator-service.json @@ -1,10 +1,22 @@ { - "apiVersion": "v1beta1", "kind": "Service", - "id": "phabricator", - "port": 80, - "containerPort": "http-server", - "selector": { "name": "phabricator" }, - "createExternalLoadBalancer": true, - "publicIPs": ["107.178.210.6"] -} + "apiVersion": "v1beta3", + "metadata": { + "name": "phabricator" + }, + "spec": { + "ports": [ + { + "port": 80, + "targetPort": "http-server" + } + ], + "selector": { + "name": "phabricator" + }, + "createExternalLoadBalancer": true, + "publicIPs": [ + "107.178.210.6" + ] + } +} \ No newline at end of file