From fb0adaad2e27f80ecae7790b206b29cbebdae36a Mon Sep 17 00:00:00 2001
From: Clayton Coleman <ccoleman@redhat.com>
Date: Thu, 17 Aug 2017 15:33:21 -0400
Subject: Allow GCS object storage to be configured

Previously, setting the GCS registry object storage settings resulted in
an invalid configuration. This generates a registry-config secret that
has the correct file if the GCS config is set.
---
 .../tasks/registry/storage/object_storage.yml             | 15 ++++++++++++++-
 .../tasks/registry/storage/registry_config_secret.j2      |  1 -
 roles/openshift_hosted/templates/registry_config.j2       |  2 +-
 .../openshift_hosted/templates/registry_config_secret.j2  |  9 ---------
 4 files changed, 15 insertions(+), 12 deletions(-)
 delete mode 120000 roles/openshift_hosted/tasks/registry/storage/registry_config_secret.j2
 delete mode 100644 roles/openshift_hosted/templates/registry_config_secret.j2

diff --git a/roles/openshift_hosted/tasks/registry/storage/object_storage.yml b/roles/openshift_hosted/tasks/registry/storage/object_storage.yml
index 8aaba0f3c..8553a8098 100644
--- a/roles/openshift_hosted/tasks/registry/storage/object_storage.yml
+++ b/roles/openshift_hosted/tasks/registry/storage/object_storage.yml
@@ -2,7 +2,7 @@
 - include: s3.yml
   when: openshift.hosted.registry.storage.provider == 's3'
 
-- name: Ensure the resgistry secret exists
+- name: Ensure the registry secret exists
   oc_secret:
     name: "{{ registry_config_secret_name }}"
     state: present
@@ -10,6 +10,19 @@
     - path: /tmp/config.yml
       data: "{{ lookup('template', 'registry_config.j2') }}"
   register: registry_config_out
+  when: openshift_hosted_registry_storage_gcs_keyfile is not defined
+
+- name: Ensure the registry secret exists for GCS
+  oc_secret:
+    name: "{{ registry_config_secret_name }}"
+    state: present
+    contents:
+    - path: /tmp/config.yml
+      data: "{{ lookup('template', 'registry_config.j2') }}"
+    - path: /tmp/gcs.json
+      data: "{{ lookup('file', openshift_hosted_registry_storage_gcs_keyfile) | string }}"
+  register: registry_config_out
+  when: openshift_hosted_registry_storage_gcs_keyfile is defined
 
 - name: Add secrets to registry service account
   oc_serviceaccount_secret:
diff --git a/roles/openshift_hosted/tasks/registry/storage/registry_config_secret.j2 b/roles/openshift_hosted/tasks/registry/storage/registry_config_secret.j2
deleted file mode 120000
index b9e82c1ea..000000000
--- a/roles/openshift_hosted/tasks/registry/storage/registry_config_secret.j2
+++ /dev/null
@@ -1 +0,0 @@
-../../../templates/registry_config_secret.j2
\ No newline at end of file
diff --git a/roles/openshift_hosted/templates/registry_config.j2 b/roles/openshift_hosted/templates/registry_config.j2
index fc9272679..61da452de 100644
--- a/roles/openshift_hosted/templates/registry_config.j2
+++ b/roles/openshift_hosted/templates/registry_config.j2
@@ -60,7 +60,7 @@ storage:
   gcs:
     bucket: {{ openshift_hosted_registry_storage_gcs_bucket }}
 {%   if openshift_hosted_registry_storage_gcs_keyfile is defined %}
-    keyfile: {{ openshift_hosted_registry_storage_gcs_keyfile }}
+    keyfile: /etc/registry/gcs.json
 {%   endif -%}
 {%   if openshift_hosted_registry_storage_gcs_rootdirectory is defined %}
     rootdirectory: {{ openshift_hosted_registry_storage_gcs_rootdirectory }}
diff --git a/roles/openshift_hosted/templates/registry_config_secret.j2 b/roles/openshift_hosted/templates/registry_config_secret.j2
deleted file mode 100644
index ca68544ec..000000000
--- a/roles/openshift_hosted/templates/registry_config_secret.j2
+++ /dev/null
@@ -1,9 +0,0 @@
----
-apiVersion: v1
-kind: Secret
-metadata:
-  name: registry-config
-  annotations:
-    provider: {{ openshift.hosted.registry.storage.provider }}
-data:
-  config.yml: {{ registry_config }}
-- 
cgit v1.2.3