From 6a339ddfa67d00a69b4a665ecd51c9ffcbbce89e Mon Sep 17 00:00:00 2001 From: Julien Maupetit Date: Thu, 30 Aug 2018 10:22:40 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(build)=20add=20support=20for=20BCs=20?= =?UTF-8?q?+=20ISs=20objects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Until now, BuildConfiguration and ImageStream objects were not required. Now that we need to add APM and customize images on a per-client basis, using the aforementionned objects seems the more relevant solution. --- group_vars/all/main.yml | 3 +++ group_vars/env_type/development.yml | 6 ++++++ init_project.yml | 2 ++ tasks/create_app_image_streams.yml | 14 ++++++++++++++ tasks/get_objects_for_app.yml | 21 ++++++++++++++++++++- tasks/manage_app.yml | 3 ++- 6 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 tasks/create_app_image_streams.yml diff --git a/group_vars/all/main.yml b/group_vars/all/main.yml index 55ed1c812..f6e7e9a70 100644 --- a/group_vars/all/main.yml +++ b/group_vars/all/main.yml @@ -62,6 +62,9 @@ job_stamp: null # docs/developer_guide/secrets.md secret_id: "1.0.0" +# OpenShift's internal docker registry server +internal_docker_registry: "docker-registry.default.svc:5000" + # TODO: move the following settings to the redirect app # Ports aliases_port: 8999 diff --git a/group_vars/env_type/development.yml b/group_vars/env_type/development.yml index 8e734b119..40aae1a69 100644 --- a/group_vars/env_type/development.yml +++ b/group_vars/env_type/development.yml @@ -1,6 +1,12 @@ # Variables specific to development environments domain_name: "{{ lookup('env', 'OPENSHIFT_DOMAIN') }}.nip.io" +# OpenShift's internal docker registry server +# +# FIXME: use docker registry server IP address instead of the service name (i.e. +# docker-registry.default.svc) to prevent oc cluster DNS issues +internal_docker_registry: "172.30.1.1:5000" + # Use development images in the development environment edxapp_image_tag: "hawthorn.1-1.0.0-dev" richie_image_tag: "0.1.0-alpha.3-alpine-dev" diff --git a/init_project.yml b/init_project.yml index 058d2040d..10bf5b7a6 100644 --- a/init_project.yml +++ b/init_project.yml @@ -24,7 +24,9 @@ - create_app_volumes - create_app_endpoints - create_static_services_routes + - create_app_image_streams tags: - volume - endpoint - route + - stream diff --git a/tasks/create_app_image_streams.yml b/tasks/create_app_image_streams.yml new file mode 100644 index 000000000..8961e9c19 --- /dev/null +++ b/tasks/create_app_image_streams.yml @@ -0,0 +1,14 @@ +--- +# Create volumes for an app + +- name: Print app name + debug: msg="App name {{ app.name }}" + tags: stream + +- name: Make sure image streams exist + openshift_raw: + definition: "{{ lookup('template', item) | from_yaml }}" + state: present + with_items: "{{ streams }}" + when: streams is defined + tags: stream diff --git a/tasks/get_objects_for_app.yml b/tasks/get_objects_for_app.yml index f591f85ff..4d446e543 100644 --- a/tasks/get_objects_for_app.yml +++ b/tasks/get_objects_for_app.yml @@ -1,4 +1,3 @@ ---- # Get objects for an application - name: Set templates list for this app @@ -8,17 +7,29 @@ - name: Set OpenShift objects to manage set_fact: + builds: "{{ templates | map('regex_search', '.*/bc.*\\.yml\\.j2$') | select('string') | list }}" deployments: "{{ templates | map('regex_search', '.*/dc.*\\.yml\\.j2$') | select('string') | list }}" services: "{{ templates | map('regex_search', '.*/svc\\.yml\\.j2$') | select('string') | list }}" + streams: "{{ templates | map('regex_search', '.*/is.*\\.yml\\.j2$') | select('string') | list }}" jobs: "{{ templates | map('regex_search', '.*/job_.*\\.yml\\.j2$') | select('string') | list }}" routes: "{{ templates | map('regex_search', '.*/route.*\\.yml\\.j2$') | select('string') | list }}" tags: - deploy + - build - deployment - service + - stream - job - route +- name: Display OpenShift's builds for this app + debug: + msg: "{{ builds | to_nice_yaml}}" + when: builds + tags: + - deploy + - build + - name: Display OpenShift's deployments for this app debug: msg: "{{ deployments | to_nice_yaml}}" @@ -35,6 +46,14 @@ - deploy - service +- name: Display OpenShift's image streams for this app + debug: + msg: "{{ streams | to_nice_yaml }}" + when: streams + tags: + - deploy + - stream + - name: Display OpenShift's jobs for this app debug: msg: "{{ jobs | to_nice_yaml }}" diff --git a/tasks/manage_app.yml b/tasks/manage_app.yml index e6cc0bc72..ce06910d5 100644 --- a/tasks/manage_app.yml +++ b/tasks/manage_app.yml @@ -1,4 +1,3 @@ ---- # Task set to manage apps # # Args: @@ -12,10 +11,12 @@ definition: "{{ lookup('template', item) | from_yaml }}" state: "{{ deployment_state | default('present') }}" with_items: + - "{{ builds }}" - "{{ deployments }}" - "{{ services }}" tags: - deploy + - build - deployment - service