From 0f55cfa455286d373a817493234e6caf7f3cba90 Mon Sep 17 00:00:00 2001 From: Ken Wronkiewicz Date: Wed, 22 Jun 2016 13:52:34 -0700 Subject: [PATCH] Glance works without host network * Adjusted Glance to bootstrap against the mariadb service * Changed Glance to work as a replication controller * Tweaked service to match metadata spec * Instead of one service with each process in a container within the pod, created two separate services so the API and registry can be scaled independently. Change-Id: I4f37ab72227147713819374b7a1dc7ee7e5b8821 Partially-implements: blueprint remove-net-host Partially-implements: blueprint replication-controllers Partially-implements: blueprint kolla-kubernetes-service-discovery --- bootstrap/glance/glance-job.yml.j2 | 5 +- etc/kolla-kubernetes/kolla-kubernetes.yml | 2 + services/glance/glance-api-pod.yml.j2 | 45 ++++++++++++++++++ ...e-api.yml.j2 => glance-api-service.yml.j2} | 4 +- services/glance/glance-pod.yml.j2 | 46 ------------------- services/glance/glance-registry-pod.yml.j2 | 35 ++++++++++++++ ....yml.j2 => glance-registry-service.yml.j2} | 4 +- 7 files changed, 90 insertions(+), 51 deletions(-) create mode 100644 services/glance/glance-api-pod.yml.j2 rename services/glance/{glance-service-api.yml.j2 => glance-api-service.yml.j2} (67%) delete mode 100644 services/glance/glance-pod.yml.j2 create mode 100644 services/glance/glance-registry-pod.yml.j2 rename services/glance/{glance-service-registry.yml.j2 => glance-registry-service.yml.j2} (65%) diff --git a/bootstrap/glance/glance-job.yml.j2 b/bootstrap/glance/glance-job.yml.j2 index b2ea2da82..fafc50d9c 100644 --- a/bootstrap/glance/glance-job.yml.j2 +++ b/bootstrap/glance/glance-job.yml.j2 @@ -8,13 +8,12 @@ spec: name: glance-bootstrap spec: restartPolicy: OnFailure - hostNetwork: True containers: - image: "{{ kolla_toolbox_image_full }}" name: creating-glance-database #TODO: Assign the IP to be mariadb's serivce ip exposed by Kubernetes command: ["usr/bin/ansible", "localhost", "-vvvv", "-m", "mysql_db", - "-a", "login_host='{{ kolla_internal_vip_address }}' + "-a", "login_host='mariadb' login_user='{{ database_user }}' login_password='{{ database_password }}' name='{{ glance_database_name }}'"] @@ -35,7 +34,7 @@ spec: name: creating-glance-user-and-permissions #TODO: Assign the IP to be mariadb's serivce ip exposed by Kubernetes command: ["/usr/bin/ansible", "localhost", "-vvvv", "-m", "mysql_user", - "-a", "login_host='{{ kolla_internal_vip_address }}' + "-a", "login_host='mariadb' login_user='{{ database_user }}' login_password='{{ database_password }}' name='{{ glance_database_name }}' diff --git a/etc/kolla-kubernetes/kolla-kubernetes.yml b/etc/kolla-kubernetes/kolla-kubernetes.yml index 966cda6db..1410a8bba 100644 --- a/etc/kolla-kubernetes/kolla-kubernetes.yml +++ b/etc/kolla-kubernetes/kolla-kubernetes.yml @@ -16,3 +16,5 @@ keystone_replicas: "1" memcached_replicas: "1" rabbitmq_replicas: "1" horizon_replicas: "1" +glance_api_replicas: "1" +glance_registry_replicas: "1" \ No newline at end of file diff --git a/services/glance/glance-api-pod.yml.j2 b/services/glance/glance-api-pod.yml.j2 new file mode 100644 index 000000000..983a3450f --- /dev/null +++ b/services/glance/glance-api-pod.yml.j2 @@ -0,0 +1,45 @@ +apiVersion: v1 +kind: ReplicationController +spec: + replicas: {{ glance_api_replicas }} + selector: + service: glance + type: api + template: + metadata: + labels: + service: glance + type: api + spec: + containers: + - name: glance-api + image: "{{ glance_api_image_full }}" + volumeMounts: + - mountPath: {{ container_config_directory }} + name: glance-config + - mountPath: /var/lib/glance/ + name: glance-persistent-storage + - mountPath: /var/log/kolla/ + name: kolla-logs + - mountPath: /etc/localtime + name: etc-localtime + env: + - name: KOLLA_CONFIG_STRATEGY + value: {{ config_strategy }} + ports: + - containerPort: {{ glance_api_port }} + name: glance-api + volumes: + - name: glance-config + configMap: + name: glance-api-configmap + - name: glance-persistent-storage + hostPath: + path: /var/lib/kolla/glance + - name: etc-localtime + hostPath: + path: /etc/localtime + - name: kolla-logs + emptyDir: {} +metadata: + name: glance-api diff --git a/services/glance/glance-service-api.yml.j2 b/services/glance/glance-api-service.yml.j2 similarity index 67% rename from services/glance/glance-service-api.yml.j2 rename to services/glance/glance-api-service.yml.j2 index 74e6ec6d8..d2e9c3e6e 100644 --- a/services/glance/glance-service-api.yml.j2 +++ b/services/glance/glance-api-service.yml.j2 @@ -3,7 +3,9 @@ kind: Service spec: ports: - port: {{ glance_api_port }} + name: glance-api selector: - name: glance-api + service: glance + type: api metadata: name: glance-api diff --git a/services/glance/glance-pod.yml.j2 b/services/glance/glance-pod.yml.j2 deleted file mode 100644 index e8fbac0a0..000000000 --- a/services/glance/glance-pod.yml.j2 +++ /dev/null @@ -1,46 +0,0 @@ -apiVersion: v1 -kind: Pod -spec: - hostNetwork: True - containers: - - name: glance-api - image: "{{ glance_api_image_full }}" - volumeMounts: - - mountPath: {{ container_config_directory }} - name: glance-api-config - - mountPath: /var/lib/glance/ - name: glance-persistent-storage - - mountPath: /var/log/kolla/ - name: kolla-logs - - mountPath: /etc/localtime - name: etc-localtime - env: - - name: KOLLA_CONFIG_STRATEGY - value: {{ config_strategy }} - - name: glance-registry - image: "{{ glance_registry_image_full }}" - volumeMounts: - - mountPath: {{ container_config_directory }} - name: glance-registry-config - - mountPath: /var/log/kolla/ - name: kolla-logs - env: - - name: KOLLA_CONFIG_STRATEGY - value: {{ config_strategy }} - volumes: - - name: glance-api-config - configMap: - name: glance-api-configmap - - name: glance-registry-config - configMap: - name: glance-registry-configmap - - name: glance-persistent-storage - hostPath: - path: /var/lib/kolla/glance - - name: etc-localtime - hostPath: - path: /etc/localtime - - name: kolla-logs - emptyDir: {} -metadata: - name: glance diff --git a/services/glance/glance-registry-pod.yml.j2 b/services/glance/glance-registry-pod.yml.j2 new file mode 100644 index 000000000..5afab9aa1 --- /dev/null +++ b/services/glance/glance-registry-pod.yml.j2 @@ -0,0 +1,35 @@ +apiVersion: v1 +kind: ReplicationController +spec: + replicas: {{ glance_registry_replicas }} + selector: + service: glance + type: registry + template: + metadata: + labels: + service: glance + type: registry + spec: + containers: + - name: glance-registry + image: "{{ glance_registry_image_full }}" + volumeMounts: + - mountPath: {{ container_config_directory }} + name: glance-config + - mountPath: /var/log/kolla/ + name: kolla-logs + env: + - name: KOLLA_CONFIG_STRATEGY + value: {{ config_strategy }} + ports: + - containerPort: {{ glance_registry_port }} + name: glance-registry + volumes: + - name: glance-config + configMap: + name: glance-registry-configmap + - name: kolla-logs + emptyDir: {} +metadata: + name: glance-registry diff --git a/services/glance/glance-service-registry.yml.j2 b/services/glance/glance-registry-service.yml.j2 similarity index 65% rename from services/glance/glance-service-registry.yml.j2 rename to services/glance/glance-registry-service.yml.j2 index b9a386f5c..c2917cb78 100644 --- a/services/glance/glance-service-registry.yml.j2 +++ b/services/glance/glance-registry-service.yml.j2 @@ -3,7 +3,9 @@ kind: Service spec: ports: - port: {{ glance_registry_port }} + name: glance-registry selector: - name: glance-registry + service: glance + type: registry metadata: name: glance-registry