From 103408ff2d3dc49ded0ee1256eb52afbf8bfb14f Mon Sep 17 00:00:00 2001 From: Julien Maupetit Date: Thu, 30 Aug 2018 10:32:20 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(edxapp)=20add=20ImageStream=20and=20B?= =?UTF-8?q?uildConfig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We now use custom image build for edxapp using ImageStream and BuildConfig objects. --- apps/edxapp/templates/cms/_dc_base.yml.j2 | 4 +- apps/edxapp/templates/cms/bc.yml.j2 | 38 +++++++++++++++++++ apps/edxapp/templates/cms/is.yml.j2 | 8 ++++ .../templates/cms/job_01_collectstatic.yml.j2 | 4 +- .../templates/cms/job_04_db_migrate.yml.j2 | 4 +- .../templates/cms/job_05_load_fixtures.yml.j2 | 4 +- apps/edxapp/templates/lms/bc.yml.j2 | 38 +++++++++++++++++++ apps/edxapp/templates/lms/is.yml.j2 | 8 ++++ .../templates/lms/job_02_collectstatic.yml.j2 | 4 +- .../templates/lms/job_03_db_migrate.yml.j2 | 4 +- 10 files changed, 110 insertions(+), 6 deletions(-) create mode 100644 apps/edxapp/templates/cms/bc.yml.j2 create mode 100644 apps/edxapp/templates/cms/is.yml.j2 create mode 100644 apps/edxapp/templates/lms/bc.yml.j2 create mode 100644 apps/edxapp/templates/lms/is.yml.j2 diff --git a/apps/edxapp/templates/cms/_dc_base.yml.j2 b/apps/edxapp/templates/cms/_dc_base.yml.j2 index 18e583a2d..0903d966b 100644 --- a/apps/edxapp/templates/cms/_dc_base.yml.j2 +++ b/apps/edxapp/templates/cms/_dc_base.yml.j2 @@ -57,7 +57,9 @@ spec: value: {{ service_variant }} - name: DJANGO_SETTINGS_MODULE value: {{ service_variant }}.envs.fun.docker_run - image: "{{ edxapp_image_name }}:{{ edxapp_image_tag }}" + # We point to a local registry image build for this "live" image (see + # ImageStream and BuildConfig templates) + image: "{{ internal_docker_registry }}/{{ project_name }}/edxapp-{{ service_variant }}:{{ edxapp_image_tag }}-live" imagePullPolicy: IfNotPresent volumeMounts: - mountPath: /config diff --git a/apps/edxapp/templates/cms/bc.yml.j2 b/apps/edxapp/templates/cms/bc.yml.j2 new file mode 100644 index 000000000..526d83ef7 --- /dev/null +++ b/apps/edxapp/templates/cms/bc.yml.j2 @@ -0,0 +1,38 @@ +apiVersion: "v1" +kind: "BuildConfig" +metadata: + # FIXME + # + # As mentionned in the official documentation [1]: + # + # Configuration change triggers currently only work when creating a new + # BuildConfig. In a future release, configuration change triggers will also + # be able to launch a build whenever a BuildConfig is updated. + # + # Hence, we must force BuildConfig to always get created with a unique name. + # This is a temporary solution that needs to be improved as soon as OKD + # triggers a new build upon BC object update. + # + # References: + # + # 1. https://docs.okd.io/latest/dev_guide/builds/triggering_builds.html#config-change-triggers + name: "edxapp-cms-{{ deployment_stamp }}" + namespace: "{{ project_name }}" + labels: + app: "edxapp" + service: "cms" + version: "{{ edxapp_image_tag }}" + deployment_stamp: "{{ deployment_stamp }}" +spec: + strategy: + type: Docker + source: + dockerfile: |- + FROM {{ edxapp_image_name }}:{{ edxapp_image_tag }} + # Add new statements here + triggers: + - type: "ConfigChange" + output: + to: + kind: "ImageStreamTag" + name: "edxapp-cms:{{ edxapp_image_tag }}-live" diff --git a/apps/edxapp/templates/cms/is.yml.j2 b/apps/edxapp/templates/cms/is.yml.j2 new file mode 100644 index 000000000..2c0f95df9 --- /dev/null +++ b/apps/edxapp/templates/cms/is.yml.j2 @@ -0,0 +1,8 @@ +apiVersion: "v1" +kind: "ImageStream" +metadata: + name: "edxapp-cms" + namespace: "{{ project_name }}" + labels: + app: "edxapp" + service: "cms" diff --git a/apps/edxapp/templates/cms/job_01_collectstatic.yml.j2 b/apps/edxapp/templates/cms/job_01_collectstatic.yml.j2 index 848d3e989..db7066991 100644 --- a/apps/edxapp/templates/cms/job_01_collectstatic.yml.j2 +++ b/apps/edxapp/templates/cms/job_01_collectstatic.yml.j2 @@ -22,7 +22,9 @@ spec: spec: containers: - name: edxapp-cms-collectstatic-{{ job_stamp }} - image: "{{ edxapp_image_name }}:{{ edxapp_image_tag }}" + # We point to a local registry image build for this "live" image (see + # ImageStream and BuildConfig templates) + image: "{{ internal_docker_registry }}/{{ project_name }}/edxapp-cms:{{ edxapp_image_tag }}-live" env: - name: DJANGO_SETTINGS_MODULE value: cms.envs.fun.docker_run diff --git a/apps/edxapp/templates/cms/job_04_db_migrate.yml.j2 b/apps/edxapp/templates/cms/job_04_db_migrate.yml.j2 index 1fb6faf34..981c470a6 100644 --- a/apps/edxapp/templates/cms/job_04_db_migrate.yml.j2 +++ b/apps/edxapp/templates/cms/job_04_db_migrate.yml.j2 @@ -22,7 +22,9 @@ spec: spec: containers: - name: edxapp-cms-dbmigrate-{{ job_stamp }} - image: "{{ edxapp_image_name }}:{{ edxapp_image_tag }}" + # We point to a local registry image build for this "live" image (see + # ImageStream and BuildConfig templates) + image: "{{ internal_docker_registry }}/{{ project_name }}/edxapp-cms:{{ edxapp_image_tag }}-live" env: - name: DJANGO_SETTINGS_MODULE value: cms.envs.fun.docker_run diff --git a/apps/edxapp/templates/cms/job_05_load_fixtures.yml.j2 b/apps/edxapp/templates/cms/job_05_load_fixtures.yml.j2 index 945f62efc..0846ec794 100644 --- a/apps/edxapp/templates/cms/job_05_load_fixtures.yml.j2 +++ b/apps/edxapp/templates/cms/job_05_load_fixtures.yml.j2 @@ -22,7 +22,9 @@ spec: spec: containers: - name: edxapp-cms-load-fixtures-{{ job_stamp }} - image: "{{ edxapp_image_name }}:{{ edxapp_image_tag }}" + # We point to a local registry image build for this "live" image (see + # ImageStream and BuildConfig templates) + image: "{{ internal_docker_registry }}/{{ project_name }}/edxapp-cms:{{ edxapp_image_tag }}-live" env: - name: DJANGO_SETTINGS_MODULE value: cms.envs.fun.docker_run diff --git a/apps/edxapp/templates/lms/bc.yml.j2 b/apps/edxapp/templates/lms/bc.yml.j2 new file mode 100644 index 000000000..4139bca92 --- /dev/null +++ b/apps/edxapp/templates/lms/bc.yml.j2 @@ -0,0 +1,38 @@ +apiVersion: "v1" +kind: "BuildConfig" +metadata: + # FIXME + # + # As mentionned in the official documentation [1]: + # + # Configuration change triggers currently only work when creating a new + # BuildConfig. In a future release, configuration change triggers will also + # be able to launch a build whenever a BuildConfig is updated. + # + # Hence, we must force BuildConfig to always get created with a unique name. + # This is a temporary solution that needs to be improved as soon as OKD + # triggers a new build upon BC object update. + # + # References: + # + # 1. https://docs.okd.io/latest/dev_guide/builds/triggering_builds.html#config-change-triggers + name: "edxapp-lms-{{ deployment_stamp }}" + namespace: "{{ project_name }}" + labels: + app: "edxapp" + service: "lms" + version: "{{ edxapp_image_tag }}" + deployment_stamp: "{{ deployment_stamp }}" +spec: + strategy: + type: Docker + source: + dockerfile: |- + FROM {{ edxapp_image_name }}:{{ edxapp_image_tag }} + # Add new statements here + triggers: + - type: "ConfigChange" + output: + to: + kind: "ImageStreamTag" + name: "edxapp-lms:{{ edxapp_image_tag }}-live" diff --git a/apps/edxapp/templates/lms/is.yml.j2 b/apps/edxapp/templates/lms/is.yml.j2 new file mode 100644 index 000000000..a93535931 --- /dev/null +++ b/apps/edxapp/templates/lms/is.yml.j2 @@ -0,0 +1,8 @@ +apiVersion: "v1" +kind: "ImageStream" +metadata: + name: "edxapp-lms" + namespace: "{{ project_name }}" + labels: + app: "edxapp" + service: "lms" diff --git a/apps/edxapp/templates/lms/job_02_collectstatic.yml.j2 b/apps/edxapp/templates/lms/job_02_collectstatic.yml.j2 index 159c77b04..0152a906d 100644 --- a/apps/edxapp/templates/lms/job_02_collectstatic.yml.j2 +++ b/apps/edxapp/templates/lms/job_02_collectstatic.yml.j2 @@ -22,7 +22,9 @@ spec: spec: containers: - name: edxapp-lms-collectstatic-{{ job_stamp }} - image: "{{ edxapp_image_name }}:{{ edxapp_image_tag }}" + # We point to a local registry image build for this "live" image (see + # ImageStream and BuildConfig templates) + image: "{{ internal_docker_registry }}/{{ project_name }}/edxapp-lms:{{ edxapp_image_tag }}-live" env: - name: DJANGO_SETTINGS_MODULE value: lms.envs.fun.docker_run diff --git a/apps/edxapp/templates/lms/job_03_db_migrate.yml.j2 b/apps/edxapp/templates/lms/job_03_db_migrate.yml.j2 index 877d1c931..33b0748b4 100644 --- a/apps/edxapp/templates/lms/job_03_db_migrate.yml.j2 +++ b/apps/edxapp/templates/lms/job_03_db_migrate.yml.j2 @@ -22,7 +22,9 @@ spec: spec: containers: - name: edxapp-lms-dbmigrate-{{ job_stamp }} - image: "{{ edxapp_image_name }}:{{ edxapp_image_tag }}" + # We point to a local registry image build for this "live" image (see + # ImageStream and BuildConfig templates) + image: "{{ internal_docker_registry }}/{{ project_name }}/edxapp-lms:{{ edxapp_image_tag }}-live" env: - name: DJANGO_SETTINGS_MODULE value: lms.envs.fun.docker_run