From 5b05ef182e15884aa849655b3aeb19a765a27227 Mon Sep 17 00:00:00 2001 From: Serienmorder Date: Thu, 17 Sep 2020 15:04:00 -0700 Subject: [PATCH 1/9] Prepping changes for better install --- .../roles/artifactory/tasks/install.yml | 26 +++++++++++- .../artifactory/tasks/legacy_migration.yml | 34 +++++++++++++++ .../roles/artifactory/tasks/main.yml | 41 ++++++++++++++++--- Openshift4/helm/openshift-xray/LICENSE | 0 .../helm-charts/openshift-xray/README.md | 0 5 files changed, 93 insertions(+), 8 deletions(-) create mode 100644 Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/legacy_migration.yml mode change 100755 => 100644 Openshift4/helm/openshift-xray/LICENSE mode change 100755 => 100644 Openshift4/operator/xray-operator/helm-charts/openshift-xray/README.md diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml index a0e98ff..ccf9150 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml @@ -52,8 +52,30 @@ until: downloadartifactory is succeeded retries: 3 -- name: MV untar directory to artifactory home - command: "mv {{ artifactory_untar_home }} {{ artifactory_home }}" +- name: Create artifactory home folder + file: + state: directory + path: "{{ artifactory_home }}" + owner: "{{ artifactory_user }}" + group: "{{ artifactory_group }}" + become: yes + +- name: Create Symlinks for var folder + file: + state: link + src: "{{ artifactory_untar_home }}/var" + dest: "{{ artifactory_home }}/var" + owner: "{{ artifactory_user }}" + group: "{{ artifactory_group }}" + become: yes + +- name: Create Symlinks for app folder + file: + state: link + src: "{{ artifactory_untar_home }}/app" + dest: "{{ artifactory_home }}/app" + owner: "{{ artifactory_user }}" + group: "{{ artifactory_group }}" become: yes - name: ensure artifactory_file_store_dir exists diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/legacy_migration.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/legacy_migration.yml new file mode 100644 index 0000000..e3e15d5 --- /dev/null +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/legacy_migration.yml @@ -0,0 +1,34 @@ +--- +- name: MV artifactory home to artifactory untar home + command: "mv {{ artifactory_home }} {{ temp_untar_home }}" + become: yes +- name: Ensure untar home permissions are correct + file: + state: directory + path: "{{ temp_untar_home }}" + owner: "{{ artifactory_user }}" + group: "{{ artifactory_group }}" + become: yes +- name: Create artifactory home folder + file: + state: directory + path: "{{ artifactory_home }}" + owner: "{{ artifactory_user }}" + group: "{{ artifactory_group }}" + become: yes +- name: Create Symlinks for var folder + file: + state: link + src: "{{ temp_untar_home }}/var" + dest: "{{ artifactory_home }}/var" + owner: "{{ artifactory_user }}" + group: "{{ artifactory_group }}" + become: yes +- name: Create Symlinks for app folder + file: + state: link + src: "{{ temp_untar_home }}/app" + dest: "{{ artifactory_home }}/app" + owner: "{{ artifactory_user }}" + group: "{{ artifactory_group }}" + become: yes diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml index 3afccb3..fe837eb 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml @@ -1,6 +1,35 @@ -- name: perform installation - include_tasks: "install.yml" - when: not artifactory_upgrade_only -- name: perform upgrade - include_tasks: "upgrade.yml" - when: artifactory_upgrade_only \ No newline at end of file +- name: Rectify Legacy Installation Block + block: + - name: Check symlink method + stat: + path: /opt/jfrog/artifactory/app + register: newMethod + - name: Check artifactory version + uri: + url: "{{ web_method }}://{{ artifactory_server_url }}:{{ url_port }}/artifactory/api/system/version" + url_username: "{{ artifactory_app_username }}" + url_password: "{{ artifactory_app_user_pass }}" + register: artifactory_installed_version + - name: Debug defunct installation + debug: + var: artifactory_installed_version + - name: Setup temporary untar home + set_fact: + temp_untar_home: "{{ jfrog_home_directory }}/artifactory-{{ artifactory_flavour }}-{{ artifactory_installed_version }}" + - name: Rectify legacy installation + include_tasks: "legacy_migration.yml" + when: (not newMethod.stat.islnk) and newMethod.stat.exists + rescue: + - name: Setup temporary untar home (assuming version is set var for version) + set_fact: + temp_untar_home: "{{ jfrog_home_directory }}/artifactory-{{ artifactory_flavour }}-{{ artifactory_version }}" + - name: Rectify legacy installation + include_tasks: "legacy_migration.yml" + when: (not newMethod.stat.islnk) and newMethod.stat.exists + always: + - name: perform installation + include_tasks: "install.yml" + when: not artifactory_upgrade_only + - name: perform upgrade + include_tasks: "upgrade.yml" + when: artifactory_upgrade_only \ No newline at end of file diff --git a/Openshift4/helm/openshift-xray/LICENSE b/Openshift4/helm/openshift-xray/LICENSE old mode 100755 new mode 100644 diff --git a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/README.md b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/README.md old mode 100755 new mode 100644 From 3e92cc71591fe5d0ca7a323e69e272964cdad5cd Mon Sep 17 00:00:00 2001 From: Serienmorder Date: Fri, 2 Oct 2020 07:23:50 -0700 Subject: [PATCH 2/9] Add fixes to database file for derby. --- .../roles/artifactory/templates/system.yaml.j2 | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/templates/system.yaml.j2 b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/templates/system.yaml.j2 index 419a0c3..a7fede0 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/templates/system.yaml.j2 +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/templates/system.yaml.j2 @@ -32,7 +32,13 @@ shared: ## Example for mysql/postgresql type: "{{ db_type }}" - driver: "{{ db_driver }}" - url: "{{ db_url }}" - username: "{{ db_user }}" +{%+ if db_type == 'derby' -%} +# driver: "{{ db_driver }}" +# url: "{{ db_url }}" +# username: "{{ db_user }}" +{%+ else -%} + driver: "{{ db_driver }}" + url: "{{ db_url }}" + username: "{{ db_user }}" +{%+ endif -%} password: "{{ db_password }}" \ No newline at end of file From 5152418112eb3d82dcf809a19916ff9b2dcecbff Mon Sep 17 00:00:00 2001 From: Serienmorder Date: Tue, 6 Oct 2020 07:17:45 -0700 Subject: [PATCH 3/9] Remaining changes necessary for artifactory imdopotence --- .../jfrog/installers/galaxy.yml | 2 +- .../installers/jfrog-installers-1.1.0.tar.gz | Bin 31110 -> 0 bytes .../installers/jfrog-installers-1.1.1.tar.gz | Bin 0 -> 30914 bytes .../roles/artifactory/defaults/main.yml | 6 ++- .../roles/artifactory/tasks/install.yml | 2 +- .../roles/artifactory/tasks/main.yml | 2 +- .../roles/artifactory/tasks/upgrade.yml | 51 ++++++++++++++---- 7 files changed, 49 insertions(+), 14 deletions(-) delete mode 100644 Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.0.tar.gz create mode 100644 Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.1.tar.gz diff --git a/Ansible/ansible_collections/jfrog/installers/galaxy.yml b/Ansible/ansible_collections/jfrog/installers/galaxy.yml index 64bf9c9..605050a 100644 --- a/Ansible/ansible_collections/jfrog/installers/galaxy.yml +++ b/Ansible/ansible_collections/jfrog/installers/galaxy.yml @@ -9,7 +9,7 @@ namespace: "jfrog" name: "installers" # The version of the collection. Must be compatible with semantic versioning -version: "1.1.0" +version: "1.1.1" # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: "README.md" diff --git a/Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.0.tar.gz b/Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.0.tar.gz deleted file mode 100644 index 5e8aebb43e15bc5664720581957dbad6f873318c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31110 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 GH}>;{%goKDv+VkE)z?d6$lCnl1}_CL<+Ch0 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 diff --git a/Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.1.tar.gz b/Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..448b6f557bc385f9e72fb424c3102ce7ac98e22f GIT binary patch literal 30914 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
^GQp>Q2mwzY+6yceU_yVv)6?sbgf4J^82 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 LTCSj2Vxas#s)96- literal 0 HcmV?d00001 diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/defaults/main.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/defaults/main.yml index 5cdaab6..eaeddfa 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/defaults/main.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/defaults/main.yml @@ -49,4 +49,8 @@ service_list: group_name: "{{ artifactory_group }}" # if this is an upgrade -artifactory_upgrade_only: false \ No newline at end of file +artifactory_upgrade_only: false + +#default username and password +artifactory_app_username: admin +artifactory_app_user_pass: password \ No newline at end of file diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml index ccf9150..9537459 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/install.yml @@ -202,7 +202,7 @@ - name: Ensure permissions are correct file: - path: "{{ artifactory_home }}" + path: "{{ jfrog_home_directory }}" group: "{{ artifactory_group }}" owner: "{{ artifactory_user }}" recurse: yes diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml index fe837eb..02a3819 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml @@ -12,7 +12,7 @@ register: artifactory_installed_version - name: Debug defunct installation debug: - var: artifactory_installed_version + var: artifactory_installed_version.json.version - name: Setup temporary untar home set_fact: temp_untar_home: "{{ jfrog_home_directory }}/artifactory-{{ artifactory_flavour }}-{{ artifactory_installed_version }}" diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/upgrade.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/upgrade.yml index a0273dd..5ac0fd8 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/upgrade.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/upgrade.yml @@ -14,6 +14,19 @@ state: directory become: yes +- name: Local Copy artifactory + unarchive: + src: "{{ local_artifactory_tar }}" + dest: "{{ jfrog_home_directory }}" + owner: "{{ artifactory_user }}" + group: "{{ artifactory_group }}" + creates: "{{ artifactory_untar_home }}" + become: yes + when: local_artifactory_tar is defined + register: downloadartifactory + until: downloadartifactory is succeeded + retries: 3 + - name: download artifactory unarchive: src: "{{ artifactory_tar }}" @@ -23,24 +36,42 @@ group: "{{ artifactory_group }}" creates: "{{ artifactory_untar_home }}" become: yes + when: artifactory_tar is defined register: downloadartifactory until: downloadartifactory is succeeded retries: 3 -- name: Delete artifactory app +#- name: Delete artifactory app +# file: +# path: "{{ artifactory_home }}/app" +# state: absent +# become: yes + +#- name: CP new app to artifactory app +# command: "cp -r {{ artifactory_untar_home }}/app {{ artifactory_home }}/app" +# become: yes + +#- name: Delete untar directory +# file: +# path: "{{ artifactory_untar_home }}" +# state: absent +# become: yes + +- name: Create Symlinks for app folder file: - path: "{{ artifactory_home }}/app" - state: absent + state: link + src: "{{ artifactory_untar_home }}/app" + dest: "{{ artifactory_home }}/app" + owner: "{{ artifactory_user }}" + group: "{{ artifactory_group }}" become: yes -- name: CP new app to artifactory app - command: "cp -r {{ artifactory_untar_home }}/app {{ artifactory_home }}/app" - become: yes - -- name: Delete untar directory +- name: Ensure permissions are correct file: - path: "{{ artifactory_untar_home }}" - state: absent + path: "{{ jfrog_home_directory }}" + group: "{{ artifactory_group }}" + owner: "{{ artifactory_user }}" + recurse: yes become: yes - name: start and enable the primary node From d00d7a05c16b9b2b2cf0c8cafbfb36cbeb3577a9 Mon Sep 17 00:00:00 2001 From: Serienmorder Date: Thu, 15 Oct 2020 08:36:33 -0700 Subject: [PATCH 4/9] No way to mitigate changes reliably. Updated readme. --- .../jfrog/installers/roles/artifactory/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/README.md b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/README.md index 8847ec0..50ecaf6 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/README.md +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/README.md @@ -1,6 +1,8 @@ # artifactory The artifactory role installs the Artifactory Pro software onto the host. Per the Vars below, it will configure a node as primary or secondary. This role uses secondary roles artifactory_nginx to install nginx. +1.1.1 contains breaking changes. To mitigate this, use the role before doing any upgrades, let it mitigate the path changes, and then run again with your upgrade. + ## Role Variables * _artifactory_version_: The version of Artifactory to install. eg. "7.4.1" * _master_key_: This is the Artifactory [Master Key](https://www.jfrog.com/confluence/display/JFROG/Managing+Keys). See below to [autogenerate this key](#autogenerating-master-and-join-keys). From fef7f751c35a8d92311724c908f74a3c344f6b10 Mon Sep 17 00:00:00 2001 From: Serienmorder Date: Thu, 15 Oct 2020 08:41:29 -0700 Subject: [PATCH 5/9] Added systemd check to verify it's already been installed. --- .../installers/jfrog-installers-1.1.1.tar.gz | Bin 30914 -> 31035 bytes .../roles/artifactory/tasks/main.yml | 8 ++++++++ 2 files changed, 8 insertions(+) diff --git a/Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.1.tar.gz b/Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.1.tar.gz index 448b6f557bc385f9e72fb424c3102ce7ac98e22f..a4073ac7fa6f9bf0cab9e7729a3365e8d0cba9dc 100644 GIT binary patch literal 31035 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 literal 30914 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
^GQp>Q2mwzY+6yceU_yVv)6?sbgf4J^82 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 LTCSj2Vxas#s)96- diff --git a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml index 02a3819..e718add 100644 --- a/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml +++ b/Ansible/ansible_collections/jfrog/installers/roles/artifactory/tasks/main.yml @@ -1,5 +1,9 @@ - name: Rectify Legacy Installation Block block: + - name: Check to see if artifactory has a service + systemd: + state: stopped + name: artifactory - name: Check symlink method stat: path: /opt/jfrog/artifactory/app @@ -20,6 +24,10 @@ include_tasks: "legacy_migration.yml" when: (not newMethod.stat.islnk) and newMethod.stat.exists rescue: + - name: Check to see if artifactory has a service + systemd: + state: stopped + name: artifactory - name: Setup temporary untar home (assuming version is set var for version) set_fact: temp_untar_home: "{{ jfrog_home_directory }}/artifactory-{{ artifactory_flavour }}-{{ artifactory_version }}" From 6b8db7647878f018c76f8fd98c60f85e2b6432db Mon Sep 17 00:00:00 2001 From: Serienmorder Date: Thu, 15 Oct 2020 18:07:54 -0700 Subject: [PATCH 6/9] Updated changelog, readme, added become and rebuilt collection tar --- Ansible/CHANGELOG.md | 6 ++++++ Ansible/README.md | 1 + .../installers/jfrog-installers-1.1.1.tar.gz | Bin 31035 -> 31024 bytes .../roles/artifactory/tasks/main.yml | 13 +++++++------ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Ansible/CHANGELOG.md b/Ansible/CHANGELOG.md index 25ace90..9c8cfdb 100644 --- a/Ansible/CHANGELOG.md +++ b/Ansible/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. +## [1.1.1] - 2020-10-15 +- added idempotence to artifactory installer +- added fix for derby deployments +- Migration to reduce changes during playbook runs contains breaking changes. You either must run once before upgrade, or provide playbook with valid credentials to access version information for it to perform properly. +- First time installers need not worry about above + ## [1.1.0] - 2020-09-27 - Validated for Artifactory 7.7.8 and Xray 3.8.6. diff --git a/Ansible/README.md b/Ansible/README.md index f22db8d..4bb6314 100644 --- a/Ansible/README.md +++ b/Ansible/README.md @@ -12,6 +12,7 @@ This Ansible directory consists of the following directories that support the JF | collection_version | artifactory_version | xray_version | |--------------------|---------------------|--------------| +| 1.1.1 | 7.10.2 | 3.9.1 | | 1.1.0 | 7.7.8 | 3.8.6 | | 1.0.9 | 7.7.3 | 3.8.0 | | 1.0.8 | 7.7.3 | 3.8.0 | diff --git a/Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.1.tar.gz b/Ansible/ansible_collections/jfrog/installers/jfrog-installers-1.1.1.tar.gz index a4073ac7fa6f9bf0cab9e7729a3365e8d0cba9dc..02495d51a30e116f39202e707eadad9b486caafd 100644 GIT binary patch delta 29824 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 Z{clNXqW^cOfBqoFs)*K$Wbp{;{{Y`!yrBR9 delta 29819 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 Date: Fri, 23 Oct 2020 15:10:40 -0700 Subject: [PATCH 7/9] Openshift IaaS upgrades --- .../openshift-artifactory-ha/CHANGELOG.md | 3 + .../helm/openshift-artifactory-ha/Chart.yaml | 4 +- .../openshift-artifactory-ha/helminstall.sh | 12 +- .../openshift-artifactory-ha/helmupgrade.sh | 4 +- .../requirements.lock | 6 +- .../requirements.yaml | 2 +- .../helm/openshift-artifactory-ha/values.yaml | 4 +- Openshift4/helm/openshift-xray/CHANGELOG.md | 3 + Openshift4/helm/openshift-xray/Chart.yaml | 4 +- Openshift4/helm/openshift-xray/helminstall.sh | 8 +- .../openshift-xray/helmupgrade.sh} | 10 +- .../helm/openshift-xray/requirements.lock | 6 +- .../helm/openshift-xray/requirements.yaml | 2 +- Openshift4/helm/openshift-xray/values.yaml | 9 +- .../artifactory-ha-operator/CHANGELOG.md | 3 + ...operator.v1.1.2.clusterserviceversion.yaml | 396 +++++++++++++++ ...artifactoryhas.charts.helm.k8s.io.crd.yaml | 29 ++ .../bundle/1.1.2/metadata/annotations.yaml | 12 + ...enshiftartifactoryha-operator.package.yaml | 2 +- .../bundle/1.1.2/tests/scorecard/config.yaml | 43 ++ .../bundle/bundle-1.1.2.Dockerfile | 19 + .../openshift-artifactory-ha/CHANGELOG.md | 3 + .../openshift-artifactory-ha/Chart.yaml | 4 +- .../openshift-artifactory-ha/helminstall.sh | 12 +- .../openshift-artifactory-ha/helmupgrade.sh | 4 +- .../requirements.lock | 6 +- .../requirements.yaml | 2 +- .../openshift-artifactory-ha/values.yaml | 4 +- ...nshiftpipeline.charts.helm.k8s.io.crd.yaml | 0 ...perator.v1.0.0.clusterserviceversion.yaml} | 8 +- .../metadata/annotations.yaml | 0 .../openshiftpipeline-operator.package.yaml | 2 +- .../tests/scorecard/config.yaml | 0 ...1.1.Dockerfile => bundle-1.0.0.Dockerfile} | 5 +- .../operator/pipeline-operator/watches.yaml | 6 +- ...openshiftxrays.charts.helm.k8s.io.crd.yaml | 29 ++ ...operator.v1.1.2.clusterserviceversion.yaml | 463 ++++++++++++++++++ .../bundle/1.1.2/metadata/annotations.yaml | 12 + .../openshiftxray-operator.package.yaml | 5 + .../bundle/bundle-1.1.2.Dockerfile | 19 + .../helm-charts/openshift-xray/CHANGELOG.md | 3 + .../helm-charts/openshift-xray/Chart.yaml | 4 +- .../helm-charts/openshift-xray/rabbitmq.yaml | 25 - .../openshift-xray/rabbitmqservice.yaml | 26 - .../openshift-xray/requirements.lock | 6 +- .../openshift-xray/requirements.yaml | 2 +- .../helm-charts/openshift-xray/values.yaml | 24 +- .../operator/xray-operator/watches.yaml | 8 + 48 files changed, 1143 insertions(+), 120 deletions(-) rename Openshift4/{operator/xray-operator/helm-charts/openshift-xray/helminstall.sh => helm/openshift-xray/helmupgrade.sh} (84%) create mode 100644 Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/manifests/artifactory-ha-operator.v1.1.2.clusterserviceversion.yaml create mode 100644 Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/manifests/openshiftartifactoryhas.charts.helm.k8s.io.crd.yaml create mode 100644 Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/metadata/annotations.yaml rename Openshift4/operator/artifactory-ha-operator/bundle/{ => 1.1.2/metadata}/openshiftartifactoryha-operator.package.yaml (66%) create mode 100644 Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/tests/scorecard/config.yaml create mode 100644 Openshift4/operator/artifactory-ha-operator/bundle/bundle-1.1.2.Dockerfile rename Openshift4/operator/pipeline-operator/bundle/{1.1.1 => 1.0.0}/manifests/openshiftpipeline.charts.helm.k8s.io.crd.yaml (100%) rename Openshift4/operator/pipeline-operator/bundle/{1.1.1/manifests/pipeline-operator.v1.1.1.clusterserviceversion.yaml => 1.0.0/manifests/pipeline-operator.v1.0.0.clusterserviceversion.yaml} (99%) rename Openshift4/operator/pipeline-operator/bundle/{1.1.1 => 1.0.0}/metadata/annotations.yaml (100%) rename Openshift4/operator/pipeline-operator/bundle/{1.1.1 => 1.0.0}/metadata/openshiftpipeline-operator.package.yaml (68%) rename Openshift4/operator/pipeline-operator/bundle/{1.1.1 => 1.0.0}/tests/scorecard/config.yaml (100%) rename Openshift4/operator/pipeline-operator/bundle/{bundle-1.1.1.Dockerfile => bundle-1.0.0.Dockerfile} (91%) create mode 100644 Openshift4/operator/xray-operator/bundle/1.1.2/manifests/openshiftxrays.charts.helm.k8s.io.crd.yaml create mode 100644 Openshift4/operator/xray-operator/bundle/1.1.2/manifests/xray-operator.v1.1.2.clusterserviceversion.yaml create mode 100644 Openshift4/operator/xray-operator/bundle/1.1.2/metadata/annotations.yaml create mode 100644 Openshift4/operator/xray-operator/bundle/1.1.2/metadata/openshiftxray-operator.package.yaml create mode 100644 Openshift4/operator/xray-operator/bundle/bundle-1.1.2.Dockerfile delete mode 100644 Openshift4/operator/xray-operator/helm-charts/openshift-xray/rabbitmq.yaml delete mode 100644 Openshift4/operator/xray-operator/helm-charts/openshift-xray/rabbitmqservice.yaml diff --git a/Openshift4/helm/openshift-artifactory-ha/CHANGELOG.md b/Openshift4/helm/openshift-artifactory-ha/CHANGELOG.md index 0175b11..191e736 100755 --- a/Openshift4/helm/openshift-artifactory-ha/CHANGELOG.md +++ b/Openshift4/helm/openshift-artifactory-ha/CHANGELOG.md @@ -1,6 +1,9 @@ # JFrog Openshift Artifactory-ha Chart Changelog All changes to this chart will be documented in this file. +## [4.4.1] - Oct 22, 2020 +* Updating to latest jfrog/artifactory-ha helm chart version 4.4.1 artifactory version 7.10.2 + ## [4.2.0] - Oct 6, 2020 * Fixed upgrade path from 3.1.0 to 4.2.0 * Updating to latest jfrog/artifactory-ha helm chart version 4.2.0 artifactory version 7.9.0 diff --git a/Openshift4/helm/openshift-artifactory-ha/Chart.yaml b/Openshift4/helm/openshift-artifactory-ha/Chart.yaml index a5b536a..67353a1 100755 --- a/Openshift4/helm/openshift-artifactory-ha/Chart.yaml +++ b/Openshift4/helm/openshift-artifactory-ha/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: 7.9.0 +appVersion: 7.10.2 description: Openshift JFrog Artifactory HA subcharting Artifactory HA to work in Openshift environment home: https://www.jfrog.com/artifactory/ icon: https://raw.githubusercontent.com/jfrog/charts/master/stable/artifactory-ha/logo/artifactory-logo.png @@ -16,4 +16,4 @@ name: openshift-artifactory-ha sources: - https://bintray.com/jfrog/product/JFrog-Artifactory-Pro/view - https://github.com/jfrog/charts -version: 4.2.0 +version: 4.4.1 diff --git a/Openshift4/helm/openshift-artifactory-ha/helminstall.sh b/Openshift4/helm/openshift-artifactory-ha/helminstall.sh index 09e060d..e9210a6 100755 --- a/Openshift4/helm/openshift-artifactory-ha/helminstall.sh +++ b/Openshift4/helm/openshift-artifactory-ha/helminstall.sh @@ -41,6 +41,9 @@ else fi fi +MASTER_KEY=$(openssl rand -hex 32) +JOIN_KEY=$(openssl rand -hex 32) + # install via helm with default postgresql configuration helm install artifactory-ha . \ --set artifactory-ha.nginx.service.ssloffload=true \ @@ -52,6 +55,11 @@ helm install artifactory-ha . \ --set artifactory-ha.database.url=jdbc:postgresql://postgres-postgresql:5432/artifactory \ --set artifactory-ha.database.user=artifactory \ --set artifactory-ha.database.password=password \ - --set artifactory-ha.artifactory.joinKey=EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE \ - --set artifactory-ha.artifactory.masterKey=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + --set artifactory-ha.artifactory.joinKey=$JOIN_KEY \ + --set artifactory-ha.artifactory.masterKey=$MASTER_KEY + +echo "*** IMPORTANT ****" +echo "export MASTER_KEY=$MASTER_KEY" +echo "export JOIN_KEY=$JOIN_KEY" +echo "*** SUCCESS ****" diff --git a/Openshift4/helm/openshift-artifactory-ha/helmupgrade.sh b/Openshift4/helm/openshift-artifactory-ha/helmupgrade.sh index a0f83ff..09fb776 100755 --- a/Openshift4/helm/openshift-artifactory-ha/helmupgrade.sh +++ b/Openshift4/helm/openshift-artifactory-ha/helmupgrade.sh @@ -11,7 +11,7 @@ helm upgrade --install artifactory-ha . \ --set artifactory-ha.database.url=jdbc:postgresql://postgres-postgresql:5432/artifactory \ --set artifactory-ha.database.user=artifactory \ --set artifactory-ha.database.password=password \ - --set artifactory-ha.artifactory.joinKey=EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE \ - --set artifactory-ha.artifactory.masterKey=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF \ + --set artifactory-ha.artifactory.joinKey=$JOIN_KEY \ + --set artifactory-ha.artifactory.masterKey=$MASTER_KEY \ --set artifactory-ha.databaseUpgradeReady=true diff --git a/Openshift4/helm/openshift-artifactory-ha/requirements.lock b/Openshift4/helm/openshift-artifactory-ha/requirements.lock index 161561a..fb85a38 100644 --- a/Openshift4/helm/openshift-artifactory-ha/requirements.lock +++ b/Openshift4/helm/openshift-artifactory-ha/requirements.lock @@ -1,6 +1,6 @@ dependencies: - name: artifactory-ha repository: https://charts.jfrog.io/ - version: 4.2.0 -digest: sha256:c5d4c457266ce8d7e0e8c6dcf326267c3ca4cbb8a03c81db68a8a0b45fde3d3e -generated: "2020-10-06T15:10:01.551465-07:00" + version: 4.4.1 +digest: sha256:36d606673a7c0e6ae47e615c90d5df7e203c75e574da6d5166ed0ebf8bb8e44c +generated: "2020-10-22T12:12:43.277532-07:00" diff --git a/Openshift4/helm/openshift-artifactory-ha/requirements.yaml b/Openshift4/helm/openshift-artifactory-ha/requirements.yaml index 89466d5..350a272 100644 --- a/Openshift4/helm/openshift-artifactory-ha/requirements.yaml +++ b/Openshift4/helm/openshift-artifactory-ha/requirements.yaml @@ -1,4 +1,4 @@ dependencies: - name: artifactory-ha - version: 4.2.0 + version: 4.4.1 repository: https://charts.jfrog.io/ diff --git a/Openshift4/helm/openshift-artifactory-ha/values.yaml b/Openshift4/helm/openshift-artifactory-ha/values.yaml index a201a72..5cd872e 100755 --- a/Openshift4/helm/openshift-artifactory-ha/values.yaml +++ b/Openshift4/helm/openshift-artifactory-ha/values.yaml @@ -10,7 +10,7 @@ artifactory-ha: url: "OVERRIDE" user: "OVERRIDE" password: "OVERRIDE" - initContainerImage: registry.connect.redhat.com/jfrog/init:1.0.1 + initContainerImage: registry.connect.redhat.com/jfrog/init:7.10.2-1 waitForDatabase: true installerInfo: '{ "productId": "Openshift_artifactory-ha/{{ .Chart.Version }}", "features": [ { "featureId": "ArtifactoryVersion/{{ default .Chart.AppVersion .Values.artifactory.image.version }}" }, { "featureId": "{{ if .Values.postgresql.enabled }}postgresql{{ else }}{{ .Values.database.type }}{{ end }}/0.0.0" }, { "featureId": "Platform/Openshift" }, { "featureId": "Partner/ACC-006983" }, { "featureId": "Channel/Openshift" } ] }' artifactory: @@ -19,7 +19,7 @@ artifactory-ha: image: registry: registry.connect.redhat.com repository: jfrog/artifactory-pro - tag: 7.9.0 + tag: 7.10.2-1 node: replicaCount: 2 waitForPrimaryStartup: diff --git a/Openshift4/helm/openshift-xray/CHANGELOG.md b/Openshift4/helm/openshift-xray/CHANGELOG.md index a4c6f3b..09067a3 100755 --- a/Openshift4/helm/openshift-xray/CHANGELOG.md +++ b/Openshift4/helm/openshift-xray/CHANGELOG.md @@ -1,6 +1,9 @@ # JFrog Openshift Artifactory-Xray Chart Changelog All changes to this chart will be documented in this file. +## [6.1.2] Oct 22nd, 2020 +* Updating to Xray chart version 6.1.2 and Xray app version 3.9.1 + ## [6.0.6] Oct 1st, 2020 * Updating to Xray chart version 6.0.6 and Xray app version 3.8.8 diff --git a/Openshift4/helm/openshift-xray/Chart.yaml b/Openshift4/helm/openshift-xray/Chart.yaml index aa8c6b6..51784ef 100755 --- a/Openshift4/helm/openshift-xray/Chart.yaml +++ b/Openshift4/helm/openshift-xray/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: 3.8.8 +appVersion: 3.9.1 description: Universal component scan for security and license inventory and impact analysis sources: - https://bintray.com/jfrog/product/xray/view @@ -13,4 +13,4 @@ maintainers: - email: johnp@jfrog.com name: John Peterson name: openshift-xray -version: 6.0.6 +version: 6.1.2 diff --git a/Openshift4/helm/openshift-xray/helminstall.sh b/Openshift4/helm/openshift-xray/helminstall.sh index c488669..55e471e 100755 --- a/Openshift4/helm/openshift-xray/helminstall.sh +++ b/Openshift4/helm/openshift-xray/helminstall.sh @@ -58,9 +58,9 @@ JFROGURL="" if [[ -z "$4" ]] then # HELM - JFROGURL="http://artifactory-ha-nginx" + #JFROGURL="http://artifactory-ha-nginx" # OPERATOR - #JFROGURL="http://openshiftartifactoryha-nginx" + JFROGURL="http://openshiftartifactoryha-nginx" else JFROGURL=$4 fi @@ -72,5 +72,5 @@ helm install xray . \ --set xray.database.user=$DBUSER \ --set xray.database.password=$DBPASS \ --set xray.xray.jfrogUrl=$JFROGURL \ - --set xray.xray.joinKey=EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE \ - --set xray.xray.masterKey=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + --set xray.xray.joinKey=$JOIN_KEY \ + --set xray.xray.masterKey=$MASTER_KEY diff --git a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/helminstall.sh b/Openshift4/helm/openshift-xray/helmupgrade.sh similarity index 84% rename from Openshift4/operator/xray-operator/helm-charts/openshift-xray/helminstall.sh rename to Openshift4/helm/openshift-xray/helmupgrade.sh index e19987c..54ed23d 100755 --- a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/helminstall.sh +++ b/Openshift4/helm/openshift-xray/helmupgrade.sh @@ -58,19 +58,19 @@ JFROGURL="" if [[ -z "$4" ]] then # HELM - JFROGURL="http://artifactory-ha-nginx" + #JFROGURL="http://artifactory-ha-nginx" # OPERATOR - # JFROGURL="http://openshiftartifactoryha-nginx" + JFROGURL="http://openshiftartifactoryha-nginx" else JFROGURL=$4 fi # install via helm with default postgresql configuration -helm install xray . \ +helm upgrade --install xray . \ --set xray.database.url=$DBURL \ --set xray.database.user=$DBUSER \ --set xray.database.password=$DBPASS \ --set xray.xray.jfrogUrl=$JFROGURL \ - --set xray.xray.joinKey=EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE \ - --set xray.xray.masterKey=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + --set xray.xray.joinKey=$JOIN_KEY \ + --set xray.xray.masterKey=$MASTER_KEY diff --git a/Openshift4/helm/openshift-xray/requirements.lock b/Openshift4/helm/openshift-xray/requirements.lock index d53cf7c..de38552 100644 --- a/Openshift4/helm/openshift-xray/requirements.lock +++ b/Openshift4/helm/openshift-xray/requirements.lock @@ -1,6 +1,6 @@ dependencies: - name: xray repository: https://charts.jfrog.io/ - version: 6.0.6 -digest: sha256:339b5ec4e309ce2970ed34ebc700d6fe8f436d6cbe8dd5d352f0b080401752af -generated: "2020-10-01T15:04:29.008985-07:00" + version: 6.2.1 +digest: sha256:7bce8744ad24ebe2d962738cb688412c44c200b0b0015afb4471df479d826fde +generated: "2020-10-23T12:58:46.07336-07:00" diff --git a/Openshift4/helm/openshift-xray/requirements.yaml b/Openshift4/helm/openshift-xray/requirements.yaml index f6311b7..276689d 100644 --- a/Openshift4/helm/openshift-xray/requirements.yaml +++ b/Openshift4/helm/openshift-xray/requirements.yaml @@ -1,4 +1,4 @@ dependencies: - name: xray - version: 6.0.6 + version: 6.2.1 repository: https://charts.jfrog.io/ diff --git a/Openshift4/helm/openshift-xray/values.yaml b/Openshift4/helm/openshift-xray/values.yaml index ab9d4c7..fcb1656 100755 --- a/Openshift4/helm/openshift-xray/values.yaml +++ b/Openshift4/helm/openshift-xray/values.yaml @@ -17,6 +17,7 @@ xray: common: xrayUserId: "1000721035" xrayGroupId: "1000721035" + xrayVersion: "3.10.3-1" customInitContainers: | - name: "prepare-uid-persistent-volume" image: "{{ .Values.initContainerImage }}" @@ -36,7 +37,6 @@ xray: image: registry: registry.connect.redhat.com repository: jfrog/xray-analysis - tag: 3.8.8 updateStrategy: RollingUpdate podManagementPolicy: Parallel preStartCommand: @@ -45,7 +45,6 @@ xray: image: registry: registry.connect.redhat.com repository: jfrog/xray-indexer - tag: 3.8.8 updateStrategy: RollingUpdate podManagementPolicy: Parallel persist: @@ -53,7 +52,6 @@ xray: image: registry: registry.connect.redhat.com repository: jfrog/xray-persist - tag: 3.8.8 updateStrategy: RollingUpdate podManagementPolicy: Parallel persistence: @@ -64,7 +62,6 @@ xray: image: registry: registry.connect.redhat.com repository: jfrog/xray-server - tag: 3.8.8 updateStrategy: RollingUpdate podManagementPolicy: Parallel replicaCount: 1 @@ -73,14 +70,14 @@ xray: image: registry: registry.connect.redhat.com repository: jfrog/xray-router - tag: 1.4.3 imagePullPolicy: IfNotPresent + tag: 3.10.3-1 rabbitmq-ha: enabled: true replicaCount: 1 image: repository: registry.connect.redhat.com/jfrog/xray-rabbitmq - tag: 3.8.9 + tag: 3.10.3-1 rabbitmqEpmdPort: 4369 rabbitmqNodePort: 5672 rabbitmqManagerPort: 15672 diff --git a/Openshift4/operator/artifactory-ha-operator/CHANGELOG.md b/Openshift4/operator/artifactory-ha-operator/CHANGELOG.md index 391de7e..3d8bd43 100755 --- a/Openshift4/operator/artifactory-ha-operator/CHANGELOG.md +++ b/Openshift4/operator/artifactory-ha-operator/CHANGELOG.md @@ -1,6 +1,9 @@ # JFrog Openshift Artifactory-ha Chart Changelog All changes to this chart will be documented in this file. +## [1.1.2] - Oct 22, 2020 +* Updating Operator to latest jfrog/artifactory-ha helm chart version 4.4.1 artifactory version 7.10.2 + ## [1.1.1] - Oct 6, 2020 * Upgrade path fixed for both operator version 1.0.3 and 1.1.0 * Updating Operator to latest jfrog/artifactory-ha helm chart version 4.2.0 artifactory version 7.9.0 diff --git a/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/manifests/artifactory-ha-operator.v1.1.2.clusterserviceversion.yaml b/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/manifests/artifactory-ha-operator.v1.1.2.clusterserviceversion.yaml new file mode 100644 index 0000000..eaba5a7 --- /dev/null +++ b/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/manifests/artifactory-ha-operator.v1.1.2.clusterserviceversion.yaml @@ -0,0 +1,396 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "charts.helm.k8s.io/v1alpha1", + "kind": "OpenshiftArtifactoryHa", + "metadata": { + "name": "openshiftartifactoryha" + }, + "spec": { + "artifactory-ha": { + "artifactory": { + "image": { + "registry": "registry.connect.redhat.com", + "repository": "jfrog/artifactory-pro", + "tag": "7.10.2-1" + }, + "joinKey": "OVERRIDE", + "masterKey": "OVERRIDE", + "uid": "1000721030", + "node": { + "replicaCount": 2, + "waitForPrimaryStartup": { + "enabled": false + } + } + }, + "databaseUpgradeReady": true, + "database": { + "driver": "OVERRIDE", + "password": "OVERRIDE", + "type": "OVERRIDE", + "url": "OVERRIDE", + "user": "OVERRIDE" + }, + "initContainerImage": "registry.connect.redhat.com/jfrog/init:7.10.2-1", + "nginx": { + "uid": "1000720104", + "gid": "1000720107", + "http": { + "externalPort": 80, + "internalPort": 8080 + }, + "https": { + "externalPort": 443, + "internalPort": 8443 + }, + "image": { + "registry": "registry.redhat.io", + "repository": "rhel8/nginx-116", + "tag": "latest" + }, + "service": { + "ssloffload": false + }, + "tlsSecretName": "OVERRIDE" + }, + "postgresql": { + "enabled": false + }, + "waitForDatabase": true + } + } + } + ] + capabilities: Seamless Upgrades + operators.operatorframework.io/builder: operator-sdk-v1.0.1 + operators.operatorframework.io/project_layout: helm.sdk.operatorframework.io/v1 + categories: Developer Tools,Integration & Delivery + certified: 'true' + containerImage: registry.connect.redhat.com/jfrog/artifactory-operator:7.10.2 + createdAt: 2020-03-25 00:00:00+00:00 + description: JFrog Artifactory Enterprise deploys Artifactory in a high availability + environment across multiple pods + repository: https://github.com/jfrog/JFrog-Cloud-Installers/tree/openshift4/Openshift4 + support: JFrog + creationTimestamp: null + name: artifactory-ha-operator.v1.1.2 + namespace: default +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: Represents Artifactory HA Instances + displayName: Artifactory HA + kind: OpenshiftArtifactoryHa + name: openshiftartifactoryhas.charts.helm.k8s.io + resources: + - kind: Deployment + name: '' + version: v1 + - kind: Service + name: '' + version: v1 + - kind: ReplicaSet + name: '' + version: v1 + - kind: Pod + name: '' + version: v1 + - kind: Secret + name: '' + version: v1 + - kind: ConfigMap + name: '' + version: v1 + - kind: StatefulSet + name: '' + version: apps/v1 + version: v1alpha1 + description: '## Overview + + Openshift Operator to deploy JFrog Artifactory Enterprise into your Openshift + cluster. + + ## Security Context Constraints + + To deploy this helm chart you will need to be a cluster admin w/ access to the anyuid scc and add the operator service account to the anyuid scc. + + + ``` + + oc adm policy add-scc-to-user anyuid -z artifactory-ha-operator + + ``` + + + ## Usage + + + An external DB is required. The operator will not deploy a DB but will require + you to specify the configuration values to connect to it. + + + Search for JFrog and click JFrog Artifactory Enterprise Operator to install. + + + Go to the Installed Operators. + + + Wait for the JFrog Artifactory Enterprise Operator to complete the installation. + + + Open the Operator and click on the provided API: Artifactory HA. + + + Click Create New Instance and provide the following parameters for your DB configuration: + + + ``` + + DATABASE_TYPE + + DATABASE_DRIVER + + DATABASE_URL + + DATABASE_USER + + DATABASE_PASSWORD + + ``` + + Master key and Join key must be supplied. To generate a new key for each run the command below: + + + ``` + + # Create a key + + export JOIN_KEY=$(openssl rand -hex 32) + + echo ${JOIN_KEY} + + ``` + + + To use TLS you will need to first create a k8s tls secret to store + your .crt and .key file into. + + + Then supply the value of this k8s secret into the TLS_SECRET field. + + + Click Create for Artifactory Enterprise to deploy into OpenShift and connect to + it on the external IP exposed by the load balancer. + + ' + displayName: JFrog Artifactory Enterprise Operator + icon: + - base64data: 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 + mediatype: image/png + install: + spec: + deployments: + - name: artifactory-ha-operatorvi + spec: + replicas: 1 + selector: + matchLabels: + name: artifactory-ha-operator + strategy: {} + template: + metadata: + labels: + name: artifactory-ha-operator + spec: + containers: + - env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: artifactory-ha-operator + - name: RELATED_IMAGE_ARTIFACTORY_IMAGE_REPOSITORY + value: registry.connect.redhat.com/jfrog/artifactory-pro:7.10.2-1 + - name: RELATED_IMAGE_NGINX_IMAGE_REPOSITORY + value: registry.redhat.io/rhel8/nginx-116:latest + image: registry.connect.redhat.com/jfrog/artifactory-operator:7.10.2 + imagePullPolicy: Always + name: artifactory-ha-operator + resources: {} + serviceAccountName: artifactory-ha-operator + permissions: + - rules: + - apiGroups: + - '' + resources: + - pods + - services + - services/finalizers + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - serviceaccounts + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - '' + resources: + - namespaces + verbs: + - get + - apiGroups: + - '' + resourceNames: + - artifactory-ha-operator + resources: + - '*' + verbs: + - '*' + - apiGroups: + - '' + resources: + - events + verbs: + - create + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - create + - apiGroups: + - apps + resourceNames: + - artifactory-ha-operator + resources: + - deployments/finalizers + verbs: + - update + - apiGroups: + - '' + resources: + - pods + verbs: + - get + - apiGroups: + - apps + resources: + - replicasets + - deployments + verbs: + - get + - apiGroups: + - charts.helm.k8s.io + resources: + - '*' + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - networking.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - policy + resources: + - '*' + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - '*' + verbs: + - '*' + serviceAccountName: artifactory-ha-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - DevOps + - CI/CD + - Developers + - Software + - Productivity + - Artifact Repository + - Repository Manager + - Docker + - Maven + - Git + - Helm + - npm + - go + - golang + - kubernetes + - k8s + - rpm + - yum + links: + - name: JFrog + url: https://www.jfrog.com + - name: JFrog Artifact Repository + url: https://jfrog.com/artifactory/ + - name: Artifactory Video + url: https://www.youtube.com/watch?v=r2_A5CPo43U + maintainers: + - email: partner-support@jfrog.com + name: JFrog + maturity: alpha + provider: + name: JFrog + replaces: artifactory-ha-operator.v1.1.1 + version: 1.1.2 +status: + certsLastUpdated: null + certsRotateAt: null + lastTransitionTime: null + lastUpdateTime: null diff --git a/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/manifests/openshiftartifactoryhas.charts.helm.k8s.io.crd.yaml b/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/manifests/openshiftartifactoryhas.charts.helm.k8s.io.crd.yaml new file mode 100644 index 0000000..f312d8c --- /dev/null +++ b/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/manifests/openshiftartifactoryhas.charts.helm.k8s.io.crd.yaml @@ -0,0 +1,29 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: openshiftartifactoryhas.charts.helm.k8s.io +spec: + group: charts.helm.k8s.io + names: + kind: OpenshiftArtifactoryHa + listKind: OpenshiftArtifactoryHaList + plural: openshiftartifactoryhas + singular: openshiftartifactoryha + scope: Namespaced + subresources: + status: {} + validation: + openAPIV3Schema: + type: object + version: v1alpha1 + versions: + - name: v1alpha1 + served: true + storage: true +status: + acceptedNames: + kind: '' + plural: '' + conditions: null + storedVersions: null diff --git a/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/metadata/annotations.yaml b/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/metadata/annotations.yaml new file mode 100644 index 0000000..8994ddd --- /dev/null +++ b/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/metadata/annotations.yaml @@ -0,0 +1,12 @@ +annotations: + operators.operatorframework.io.bundle.channel.default.v1: alpha + operators.operatorframework.io.bundle.channels.v1: alpha + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: openshiftartifactoryha-operator + operators.operatorframework.io.metrics.builder: operator-sdk-v1.0.1 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: helm.sdk.operatorframework.io/v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 \ No newline at end of file diff --git a/Openshift4/operator/artifactory-ha-operator/bundle/openshiftartifactoryha-operator.package.yaml b/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/metadata/openshiftartifactoryha-operator.package.yaml similarity index 66% rename from Openshift4/operator/artifactory-ha-operator/bundle/openshiftartifactoryha-operator.package.yaml rename to Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/metadata/openshiftartifactoryha-operator.package.yaml index 397bc5c..08fb784 100644 --- a/Openshift4/operator/artifactory-ha-operator/bundle/openshiftartifactoryha-operator.package.yaml +++ b/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/metadata/openshiftartifactoryha-operator.package.yaml @@ -1,5 +1,5 @@ channels: -- currentCSV: artifactory-ha-operator.v1.1.1 +- currentCSV: artifactory-ha-operator.v1.1.2 name: alpha defaultChannel: '' packageName: openshiftartifactoryha-operator diff --git a/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/tests/scorecard/config.yaml b/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/tests/scorecard/config.yaml new file mode 100644 index 0000000..7f704f3 --- /dev/null +++ b/Openshift4/operator/artifactory-ha-operator/bundle/1.1.2/tests/scorecard/config.yaml @@ -0,0 +1,43 @@ +kind: Configuration +apiversion: scorecard.operatorframework.io/v1alpha3 +metadata: + name: config +stages: +- parallel: true + tests: + - image: quay.io/operator-framework/scorecard-test:latest + entrypoint: + - scorecard-test + - basic-check-spec + labels: + suite: basic + test: basic-check-spec-test + - image: quay.io/operator-framework/scorecard-test:latest + entrypoint: + - scorecard-test + - olm-bundle-validation + labels: + suite: olm + test: olm-bundle-validation-test + - image: quay.io/operator-framework/scorecard-test:latest + entrypoint: + - scorecard-test + - olm-crds-have-validation + labels: + suite: olm + test: olm-crds-have-validation-test + - image: quay.io/operator-framework/scorecard-test:latest + entrypoint: + - scorecard-test + - olm-crds-have-resources + labels: + suite: olm + test: olm-crds-have-resources-test + - image: quay.io/operator-framework/scorecard-test:latest + entrypoint: + - scorecard-test + - olm-spec-descriptors + labels: + suite: olm + test: olm-spec-descriptors-test + diff --git a/Openshift4/operator/artifactory-ha-operator/bundle/bundle-1.1.2.Dockerfile b/Openshift4/operator/artifactory-ha-operator/bundle/bundle-1.1.2.Dockerfile new file mode 100644 index 0000000..94a4e77 --- /dev/null +++ b/Openshift4/operator/artifactory-ha-operator/bundle/bundle-1.1.2.Dockerfile @@ -0,0 +1,19 @@ +FROM scratch + +LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 +LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ +LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ +LABEL operators.operatorframework.io.bundle.package.v1=openshiftartifactoryha-operator +LABEL operators.operatorframework.io.bundle.channels.v1=alpha +LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha +LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.0.1 +LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 +LABEL operators.operatorframework.io.metrics.project_layout=helm.sdk.operatorframework.io/v1 +LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/ +LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1 + +COPY 1.1.2/manifests /manifests/ +COPY 1.1.2/metadata /metadata/ +LABEL com.redhat.openshift.versions="v4.5,v4.6" +LABEL com.redhat.delivery.operator.bundle=true +LABEL com.redhat.delivery.backport=true diff --git a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/CHANGELOG.md b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/CHANGELOG.md index 0175b11..191e736 100755 --- a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/CHANGELOG.md +++ b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/CHANGELOG.md @@ -1,6 +1,9 @@ # JFrog Openshift Artifactory-ha Chart Changelog All changes to this chart will be documented in this file. +## [4.4.1] - Oct 22, 2020 +* Updating to latest jfrog/artifactory-ha helm chart version 4.4.1 artifactory version 7.10.2 + ## [4.2.0] - Oct 6, 2020 * Fixed upgrade path from 3.1.0 to 4.2.0 * Updating to latest jfrog/artifactory-ha helm chart version 4.2.0 artifactory version 7.9.0 diff --git a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/Chart.yaml b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/Chart.yaml index a5b536a..67353a1 100755 --- a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/Chart.yaml +++ b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: 7.9.0 +appVersion: 7.10.2 description: Openshift JFrog Artifactory HA subcharting Artifactory HA to work in Openshift environment home: https://www.jfrog.com/artifactory/ icon: https://raw.githubusercontent.com/jfrog/charts/master/stable/artifactory-ha/logo/artifactory-logo.png @@ -16,4 +16,4 @@ name: openshift-artifactory-ha sources: - https://bintray.com/jfrog/product/JFrog-Artifactory-Pro/view - https://github.com/jfrog/charts -version: 4.2.0 +version: 4.4.1 diff --git a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/helminstall.sh b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/helminstall.sh index 09e060d..e9210a6 100755 --- a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/helminstall.sh +++ b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/helminstall.sh @@ -41,6 +41,9 @@ else fi fi +MASTER_KEY=$(openssl rand -hex 32) +JOIN_KEY=$(openssl rand -hex 32) + # install via helm with default postgresql configuration helm install artifactory-ha . \ --set artifactory-ha.nginx.service.ssloffload=true \ @@ -52,6 +55,11 @@ helm install artifactory-ha . \ --set artifactory-ha.database.url=jdbc:postgresql://postgres-postgresql:5432/artifactory \ --set artifactory-ha.database.user=artifactory \ --set artifactory-ha.database.password=password \ - --set artifactory-ha.artifactory.joinKey=EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE \ - --set artifactory-ha.artifactory.masterKey=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + --set artifactory-ha.artifactory.joinKey=$JOIN_KEY \ + --set artifactory-ha.artifactory.masterKey=$MASTER_KEY + +echo "*** IMPORTANT ****" +echo "export MASTER_KEY=$MASTER_KEY" +echo "export JOIN_KEY=$JOIN_KEY" +echo "*** SUCCESS ****" diff --git a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/helmupgrade.sh b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/helmupgrade.sh index a0f83ff..09fb776 100755 --- a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/helmupgrade.sh +++ b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/helmupgrade.sh @@ -11,7 +11,7 @@ helm upgrade --install artifactory-ha . \ --set artifactory-ha.database.url=jdbc:postgresql://postgres-postgresql:5432/artifactory \ --set artifactory-ha.database.user=artifactory \ --set artifactory-ha.database.password=password \ - --set artifactory-ha.artifactory.joinKey=EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE \ - --set artifactory-ha.artifactory.masterKey=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF \ + --set artifactory-ha.artifactory.joinKey=$JOIN_KEY \ + --set artifactory-ha.artifactory.masterKey=$MASTER_KEY \ --set artifactory-ha.databaseUpgradeReady=true diff --git a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/requirements.lock b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/requirements.lock index 161561a..fb85a38 100644 --- a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/requirements.lock +++ b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/requirements.lock @@ -1,6 +1,6 @@ dependencies: - name: artifactory-ha repository: https://charts.jfrog.io/ - version: 4.2.0 -digest: sha256:c5d4c457266ce8d7e0e8c6dcf326267c3ca4cbb8a03c81db68a8a0b45fde3d3e -generated: "2020-10-06T15:10:01.551465-07:00" + version: 4.4.1 +digest: sha256:36d606673a7c0e6ae47e615c90d5df7e203c75e574da6d5166ed0ebf8bb8e44c +generated: "2020-10-22T12:12:43.277532-07:00" diff --git a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/requirements.yaml b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/requirements.yaml index 89466d5..350a272 100644 --- a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/requirements.yaml +++ b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/requirements.yaml @@ -1,4 +1,4 @@ dependencies: - name: artifactory-ha - version: 4.2.0 + version: 4.4.1 repository: https://charts.jfrog.io/ diff --git a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/values.yaml b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/values.yaml index a201a72..5cd872e 100755 --- a/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/values.yaml +++ b/Openshift4/operator/artifactory-ha-operator/helm-charts/openshift-artifactory-ha/values.yaml @@ -10,7 +10,7 @@ artifactory-ha: url: "OVERRIDE" user: "OVERRIDE" password: "OVERRIDE" - initContainerImage: registry.connect.redhat.com/jfrog/init:1.0.1 + initContainerImage: registry.connect.redhat.com/jfrog/init:7.10.2-1 waitForDatabase: true installerInfo: '{ "productId": "Openshift_artifactory-ha/{{ .Chart.Version }}", "features": [ { "featureId": "ArtifactoryVersion/{{ default .Chart.AppVersion .Values.artifactory.image.version }}" }, { "featureId": "{{ if .Values.postgresql.enabled }}postgresql{{ else }}{{ .Values.database.type }}{{ end }}/0.0.0" }, { "featureId": "Platform/Openshift" }, { "featureId": "Partner/ACC-006983" }, { "featureId": "Channel/Openshift" } ] }' artifactory: @@ -19,7 +19,7 @@ artifactory-ha: image: registry: registry.connect.redhat.com repository: jfrog/artifactory-pro - tag: 7.9.0 + tag: 7.10.2-1 node: replicaCount: 2 waitForPrimaryStartup: diff --git a/Openshift4/operator/pipeline-operator/bundle/1.1.1/manifests/openshiftpipeline.charts.helm.k8s.io.crd.yaml b/Openshift4/operator/pipeline-operator/bundle/1.0.0/manifests/openshiftpipeline.charts.helm.k8s.io.crd.yaml similarity index 100% rename from Openshift4/operator/pipeline-operator/bundle/1.1.1/manifests/openshiftpipeline.charts.helm.k8s.io.crd.yaml rename to Openshift4/operator/pipeline-operator/bundle/1.0.0/manifests/openshiftpipeline.charts.helm.k8s.io.crd.yaml diff --git a/Openshift4/operator/pipeline-operator/bundle/1.1.1/manifests/pipeline-operator.v1.1.1.clusterserviceversion.yaml b/Openshift4/operator/pipeline-operator/bundle/1.0.0/manifests/pipeline-operator.v1.0.0.clusterserviceversion.yaml similarity index 99% rename from Openshift4/operator/pipeline-operator/bundle/1.1.1/manifests/pipeline-operator.v1.1.1.clusterserviceversion.yaml rename to Openshift4/operator/pipeline-operator/bundle/1.0.0/manifests/pipeline-operator.v1.0.0.clusterserviceversion.yaml index d8345ca..118f4bf 100644 --- a/Openshift4/operator/pipeline-operator/bundle/1.1.1/manifests/pipeline-operator.v1.1.1.clusterserviceversion.yaml +++ b/Openshift4/operator/pipeline-operator/bundle/1.0.0/manifests/pipeline-operator.v1.0.0.clusterserviceversion.yaml @@ -167,13 +167,13 @@ metadata: capabilities: Seamless Upgrades categories: Developer Tools,Integration & Delivery certified: 'true' - containerImage: registry.connect.redhat.com/jfrog/pipelines-operator:1.8 + containerImage: registry.connect.redhat.com/jfrog/pipelines-operator:1.8.1 createdAt: 2020-10-09 00:00:00+00:00 description: JFrog Pipeline Enterprise deploys Pipeline CI/CD Openshift (Requires Jfrog Artifactory) repository: https://github.com/jfrog/JFrog-Cloud-Installers/tree/openshift4/Openshift4 support: JFrog creationTimestamp: null - name: pipeline-operator.v1.1.1 + name: pipeline-operator.v1.0.0 namespace: default spec: apiservicedefinitions: {} @@ -349,7 +349,7 @@ spec: value: registry.connect.redhat.com/jfrog/pipelines-vault-init:1.8.0 - name: RELATED_IMAGE_PIPELINE_VAULT_IMAGE_REPOSITORY value: registry.connect.redhat.com/jfrog/pipelines-vault:1.8.0 - image: registry.connect.redhat.com/jfrog/pipelines-operator:1.8 + image: registry.connect.redhat.com/jfrog/pipelines-operator:1.8.1 imagePullPolicy: Always name: pipeline-operator resources: {} @@ -512,7 +512,7 @@ spec: maturity: alpha provider: name: JFrog - version: 1.1.1 + version: 1.0.0 status: certsLastUpdated: null certsRotateAt: null diff --git a/Openshift4/operator/pipeline-operator/bundle/1.1.1/metadata/annotations.yaml b/Openshift4/operator/pipeline-operator/bundle/1.0.0/metadata/annotations.yaml similarity index 100% rename from Openshift4/operator/pipeline-operator/bundle/1.1.1/metadata/annotations.yaml rename to Openshift4/operator/pipeline-operator/bundle/1.0.0/metadata/annotations.yaml diff --git a/Openshift4/operator/pipeline-operator/bundle/1.1.1/metadata/openshiftpipeline-operator.package.yaml b/Openshift4/operator/pipeline-operator/bundle/1.0.0/metadata/openshiftpipeline-operator.package.yaml similarity index 68% rename from Openshift4/operator/pipeline-operator/bundle/1.1.1/metadata/openshiftpipeline-operator.package.yaml rename to Openshift4/operator/pipeline-operator/bundle/1.0.0/metadata/openshiftpipeline-operator.package.yaml index 39830f1..3d94fb8 100644 --- a/Openshift4/operator/pipeline-operator/bundle/1.1.1/metadata/openshiftpipeline-operator.package.yaml +++ b/Openshift4/operator/pipeline-operator/bundle/1.0.0/metadata/openshiftpipeline-operator.package.yaml @@ -1,5 +1,5 @@ channels: -- currentCSV: pipeline-operator.v1.1.1 +- currentCSV: pipeline-operator.v1.0.0 name: alpha defaultChannel: '' packageName: openshiftpipeline-operator diff --git a/Openshift4/operator/pipeline-operator/bundle/1.1.1/tests/scorecard/config.yaml b/Openshift4/operator/pipeline-operator/bundle/1.0.0/tests/scorecard/config.yaml similarity index 100% rename from Openshift4/operator/pipeline-operator/bundle/1.1.1/tests/scorecard/config.yaml rename to Openshift4/operator/pipeline-operator/bundle/1.0.0/tests/scorecard/config.yaml diff --git a/Openshift4/operator/pipeline-operator/bundle/bundle-1.1.1.Dockerfile b/Openshift4/operator/pipeline-operator/bundle/bundle-1.0.0.Dockerfile similarity index 91% rename from Openshift4/operator/pipeline-operator/bundle/bundle-1.1.1.Dockerfile rename to Openshift4/operator/pipeline-operator/bundle/bundle-1.0.0.Dockerfile index c7c0f11..86b6ede 100644 --- a/Openshift4/operator/pipeline-operator/bundle/bundle-1.1.1.Dockerfile +++ b/Openshift4/operator/pipeline-operator/bundle/bundle-1.0.0.Dockerfile @@ -12,9 +12,8 @@ LABEL operators.operatorframework.io.metrics.project_layout=helm.sdk.operatorfra LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/ LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1 -COPY 1.1.1/manifests /manifests/ -COPY 1.1.1/metadata /metadata/ -COPY 1.1.1/tests /tests/ +COPY 1.0.0/manifests /manifests/ +COPY 1.0.0/metadata /metadata/ LABEL com.redhat.openshift.versions="v4.5,v4.6" LABEL com.redhat.delivery.operator.bundle=true LABEL com.redhat.delivery.backport=true diff --git a/Openshift4/operator/pipeline-operator/watches.yaml b/Openshift4/operator/pipeline-operator/watches.yaml index 5343af8..0063334 100644 --- a/Openshift4/operator/pipeline-operator/watches.yaml +++ b/Openshift4/operator/pipeline-operator/watches.yaml @@ -1,6 +1,6 @@ -# Use the 'create api' subcommand to add watches to this file. -- group: charts.helm.k8s.io - version: v1alpha1 +--- +- version: v1alpha1 + group: charts.helm.k8s.io kind: OpenshiftPipelines chart: helm-charts/openshift-pipelines # +kubebuilder:scaffold:watch diff --git a/Openshift4/operator/xray-operator/bundle/1.1.2/manifests/openshiftxrays.charts.helm.k8s.io.crd.yaml b/Openshift4/operator/xray-operator/bundle/1.1.2/manifests/openshiftxrays.charts.helm.k8s.io.crd.yaml new file mode 100644 index 0000000..e956a17 --- /dev/null +++ b/Openshift4/operator/xray-operator/bundle/1.1.2/manifests/openshiftxrays.charts.helm.k8s.io.crd.yaml @@ -0,0 +1,29 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: openshiftxrays.charts.helm.k8s.io +spec: + group: charts.helm.k8s.io + names: + kind: OpenshiftXray + listKind: OpenshiftXrayList + plural: openshiftxrays + singular: openshiftxray + scope: Namespaced + subresources: + status: {} + validation: + openAPIV3Schema: + type: object + version: v1alpha1 + versions: + - name: v1alpha1 + served: true + storage: true +status: + acceptedNames: + kind: '' + plural: '' + conditions: null + storedVersions: null diff --git a/Openshift4/operator/xray-operator/bundle/1.1.2/manifests/xray-operator.v1.1.2.clusterserviceversion.yaml b/Openshift4/operator/xray-operator/bundle/1.1.2/manifests/xray-operator.v1.1.2.clusterserviceversion.yaml new file mode 100644 index 0000000..dffeda3 --- /dev/null +++ b/Openshift4/operator/xray-operator/bundle/1.1.2/manifests/xray-operator.v1.1.2.clusterserviceversion.yaml @@ -0,0 +1,463 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "charts.helm.k8s.io/v1alpha1", + "kind": "OpenshiftXray", + "metadata": { + "name": "openshiftxray" + }, + "spec": { + "xray": { + "initContainerImage": "registry.connect.redhat.com/jfrog/init:1.0.1", + "common": { + "xrayUserId": "1000721035", + "xrayGroupId": "1000721035", + "xrayVersion": "3.10.3-1" + }, + "analysis": { + "image": { + "registry": "registry.connect.redhat.com", + "repository": "jfrog/xray-analysis" + }, + "name": "xray-analysis", + "podManagementPolicy": "Parallel", + "preStartCommand": null, + "updateStrategy": "RollingUpdate" + }, + "database": { + "password": "OVERRIDE", + "url": "OVERRIDE", + "user": "OVERRIDE" + }, + "global": { + "postgresqlTlsSecret": null + }, + "indexer": { + "image": { + "registry": "registry.connect.redhat.com", + "repository": "jfrog/xray-indexer" + }, + "name": "xray-indexer", + "podManagementPolicy": "Parallel", + "updateStrategy": "RollingUpdate" + }, + "persist": { + "image": { + "registry": "registry.connect.redhat.com", + "repository": "jfrog/xray-persist" + }, + "name": "xray-persist", + "persistence": { + "size": "10Gi" + }, + "podManagementPolicy": "Parallel", + "preStartCommand": null, + "updateStrategy": "RollingUpdate" + }, + "postgresql": { + "enabled": false + }, + "rabbitmq-ha": { + "enabled": true, + "image": { + "repository": "registry.connect.redhat.com/jfrog/xray-rabbitmq", + "tag": "3.10.3-1" + }, + "rabbitmqUsername": "guest", + "rabbitmqPassword": "guest", + "managementUsername": "guest", + "managementPassword": "guest", + "initContainer": { + "enabled": false + }, + "securityContext": { + "fsGroup": 1000721035, + "runAsUser": 1000721035, + "runAsGroup": 1000721035 + }, + "replicaCount": 1 + }, + "replicaCount": 1, + "unifiedUpgradeAllowed": "true", + "router": { + "image": { + "imagePullPolicy": "IfNotPresent", + "registry": "registry.connect.redhat.com", + "repository": "jfrog/xray-router", + "tag": "3.10.3-1" + }, + "name": "router" + }, + "server": { + "image": { + "registry": "registry.connect.redhat.com", + "repository": "jfrog/xray-server" + }, + "name": "xray-server", + "podManagementPolicy": "Parallel", + "replicaCount": 1, + "updateStrategy": "RollingUpdate" + }, + "xray": { + "consoleLog": false, + "jfrogUrl": "OVERRIDE", + "joinKey": "OVERRIDE", + "masterKey": "OVERRIDE" + } + } + } + } + ] + capabilities: Seamless Upgrades + categories: Developer Tools,Integration & Delivery + certified: 'true' + containerImage: registry.connect.redhat.com/jfrog/xray-operator:3.10.3 + createdAt: 2020-05-22 00:00:00+00:00 + description: JFrog Xray Enterprise deploys Xray continuous security scanner into + Openshift (Requires Jfrog Artifactory) + repository: https://github.com/jfrog/JFrog-Cloud-Installers/tree/openshift4/Openshift4 + support: JFrog + creationTimestamp: null + name: xray-operator.v1.1.2 + namespace: default +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: Represents Xray Instances + displayName: Xray + kind: OpenshiftXray + name: openshiftxrays.charts.helm.k8s.io + resources: + - kind: Deployment + name: '' + version: v1 + - kind: Service + name: '' + version: v1 + - kind: ReplicaSet + name: '' + version: v1 + - kind: Pod + name: '' + version: v1 + - kind: Secret + name: '' + version: v1 + - kind: ConfigMap + name: '' + version: v1 + - kind: StatefulSet + name: '' + version: apps/v1 + version: v1alpha1 + description: '## Overview + + Openshift Operator to deploy JFrog Xray Continuous Security scanner into your Openshift cluster. + + + ## Security Context Constraints + + To deploy this helm chart you will need to be a cluster admin w/ access to the anyuid scc and add the operator service account to the anyuid scc. + + + ``` + + oc adm policy add-scc-to-user anyuid -z xray-operator + + ``` + + ## Usage + + + An external DB is required. The operator will not deploy a DB but will require + you to specify the configuration values to connect to it. + + + Search for JFrog and click JFrog Xray Operator to install. + + + Go to the Installed Operators. + + + Wait for the JFrog Xray Operator to complete the installation. + + + Open the Operator and click on the provided API: Xray + + + Click Create New Instance and provide the following parameters for your DB configuration: + + + ``` + + JFROG_URL + + DATABASE_URL + + DATABASE_USER + + DATABASE_PASSWORD + + ``` + + + JFROG_URL is the external ip or DNS of your Artifactory to connect Xray to. Artifactory + is required to use this operator. + + + DATABASE_URL must be a Postgresql URL in the format: + + ``` + + postgres://postgres-postgresql:5432/xraydb?sslmode=disable + + ``` + + + DATABASE_USER and DATABASE_PASSWORD must supply a valid user on Postgresql. + + + Click Create for Xray to deploy into OpenShift. + + + Open Artifactory in a web browser to complete the onboarding wizard for Xray! + + + ## Air gap environments + + + To use Xray Operator in an air gap environment you will need to download the images as image streams into your Openshift air gap cluster manually. + + + Use the image overrides to then specify the image stream locations that are local to your cluster. + + + Next you will need to setup the database of index data for xray to use when scanning artifacts. + + + Follow the link below for instructions on setup: + + + https://www.jfrog.com/confluence/display/JFROG/Configuring+Xray#ConfiguringXray-SynchronizingtheDatabase + + ' + displayName: JFrog Xray Continuous Security Operator + icon: + - base64data: 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 + mediatype: image/png + install: + spec: + deployments: + - name: xray-operator + spec: + replicas: 1 + selector: + matchLabels: + name: xray-operator + strategy: {} + template: + metadata: + labels: + name: xray-operator + spec: + containers: + - env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: xray-operator + - name: RELATED_IMAGE_XRAY_INIT_IMAGE_REPOSITORY + value: registry.connect.redhat.com/jfrog/init:1.0.1 + - name: RELATED_IMAGE_XRAY_SERVER_IMAGE_REPOSITORY + value: registry.connect.redhat.com/jfrog/xray-server:3.10.3-1 + - name: RELATED_IMAGE_XRAY_ANALYSIS_IMAGE_REPOSITORY + value: registry.connect.redhat.com/jfrog/xray-analysis:3.10.3-1 + - name: RELATED_IMAGE_XRAY_PERSIST_IMAGE_REPOSITORY + value: registry.connect.redhat.com/jfrog/xray-persist:3.10.3-1 + - name: RELATED_IMAGE_XRAY_INDEXER_IMAGE_REPOSITORY + value: registry.connect.redhat.com/jfrog/xray-indexer:3.10.3-1 + - name: RELATED_IMAGE_XRAY_ROUTER_IMAGE_REPOSITORY + value: registry.connect.redhat.com/jfrog/xray-router:3.10.3-1 + - name: RELATED_IMAGE_XRAY_RABBITMQ_IMAGE_REPOSITORY + value: registry.connect.redhat.com/jfrog/xray-rabbitmq:3.10.3-1 + image: registry.connect.redhat.com/jfrog/xray-operator:3.10.3 + imagePullPolicy: Always + name: xray-operator + resources: {} + serviceAccountName: xray-operator + permissions: + - rules: + - apiGroups: + - '' + resources: + - pods + - services + - services/finalizers + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + - serviceaccounts + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - '' + resources: + - namespaces + verbs: + - get + - apiGroups: + - '' + resourceNames: + - xray-operator + resources: + - '*' + verbs: + - '*' + - apiGroups: + - '' + resources: + - events + verbs: + - create + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - create + - apiGroups: + - apps + resourceNames: + - xray-operator + resources: + - deployments/finalizers + verbs: + - update + - apiGroups: + - '' + resources: + - pods + verbs: + - get + - apiGroups: + - apps + resources: + - replicasets + - deployments + verbs: + - get + - apiGroups: + - charts.helm.k8s.io + resources: + - '*' + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - networking.k8s.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - policy + resources: + - '*' + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - '*' + verbs: + - '*' + serviceAccountName: xray-operator + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - DevOps + - CI/CD + - Developers + - Software + - Productivity + - Artifact Repository + - Repository Manager + - Docker + - Maven + - Git + - Helm + - npm + - go + - golang + - kubernetes + - k8s + - rpm + - yum + links: + - name: JFrog + url: https://www.jfrog.com + - name: JFrog Xray Continuous Security + url: https://jfrog.com/xray/ + - name: JFrog Xray Continuous Security Video + url: https://youtu.be/wGzyKlQklKQ + maintainers: + - email: partner-support@jfrog.com + name: JFrog + maturity: alpha + provider: + name: JFrog + replaces: xray-operator.v1.1.1 + version: 1.1.2 +status: + certsLastUpdated: null + certsRotateAt: null + lastTransitionTime: null + lastUpdateTime: null diff --git a/Openshift4/operator/xray-operator/bundle/1.1.2/metadata/annotations.yaml b/Openshift4/operator/xray-operator/bundle/1.1.2/metadata/annotations.yaml new file mode 100644 index 0000000..2b47077 --- /dev/null +++ b/Openshift4/operator/xray-operator/bundle/1.1.2/metadata/annotations.yaml @@ -0,0 +1,12 @@ +annotations: + operators.operatorframework.io.bundle.channel.default.v1: alpha + operators.operatorframework.io.bundle.channels.v1: alpha + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: openshiftxray-operator + operators.operatorframework.io.metrics.builder: operator-sdk-v1.0.1 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: helm.sdk.operatorframework.io/v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 \ No newline at end of file diff --git a/Openshift4/operator/xray-operator/bundle/1.1.2/metadata/openshiftxray-operator.package.yaml b/Openshift4/operator/xray-operator/bundle/1.1.2/metadata/openshiftxray-operator.package.yaml new file mode 100644 index 0000000..5184456 --- /dev/null +++ b/Openshift4/operator/xray-operator/bundle/1.1.2/metadata/openshiftxray-operator.package.yaml @@ -0,0 +1,5 @@ +channels: +- currentCSV: xray-operator.v1.1.2 + name: alpha +defaultChannel: '' +packageName: openshiftxray-operator diff --git a/Openshift4/operator/xray-operator/bundle/bundle-1.1.2.Dockerfile b/Openshift4/operator/xray-operator/bundle/bundle-1.1.2.Dockerfile new file mode 100644 index 0000000..d148465 --- /dev/null +++ b/Openshift4/operator/xray-operator/bundle/bundle-1.1.2.Dockerfile @@ -0,0 +1,19 @@ +FROM scratch + +LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 +LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ +LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ +LABEL operators.operatorframework.io.bundle.package.v1=openshiftxray-operator +LABEL operators.operatorframework.io.bundle.channels.v1=alpha +LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha +LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.0.1 +LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 +LABEL operators.operatorframework.io.metrics.project_layout=helm.sdk.operatorframework.io/v1 +LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/ +LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1 + +COPY 1.1.2/manifests /manifests/ +COPY 1.1.2/metadata /metadata/ +LABEL com.redhat.openshift.versions="v4.5,v4.6" +LABEL com.redhat.delivery.operator.bundle=true +LABEL com.redhat.delivery.backport=true diff --git a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/CHANGELOG.md b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/CHANGELOG.md index a4c6f3b..09067a3 100755 --- a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/CHANGELOG.md +++ b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/CHANGELOG.md @@ -1,6 +1,9 @@ # JFrog Openshift Artifactory-Xray Chart Changelog All changes to this chart will be documented in this file. +## [6.1.2] Oct 22nd, 2020 +* Updating to Xray chart version 6.1.2 and Xray app version 3.9.1 + ## [6.0.6] Oct 1st, 2020 * Updating to Xray chart version 6.0.6 and Xray app version 3.8.8 diff --git a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/Chart.yaml b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/Chart.yaml index aa8c6b6..51784ef 100755 --- a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/Chart.yaml +++ b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: 3.8.8 +appVersion: 3.9.1 description: Universal component scan for security and license inventory and impact analysis sources: - https://bintray.com/jfrog/product/xray/view @@ -13,4 +13,4 @@ maintainers: - email: johnp@jfrog.com name: John Peterson name: openshift-xray -version: 6.0.6 +version: 6.1.2 diff --git a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/rabbitmq.yaml b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/rabbitmq.yaml deleted file mode 100644 index df49bf6..0000000 --- a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/rabbitmq.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: rabbitmq - name: rabbitmq - namespace: default -spec: - replicas: 1 - selector: - matchLabels: - app: rabbitmq - template: - metadata: - labels: - app: rabbitmq - spec: - containers: - - image: registry.connect.redhat.com/jfrog/xray-rabbitmq:3.8.9 - imagePullPolicy: "Always" - name: xray-rabbitmq - ports: - - containerPort: 4369 - - containerPort: 5672 - - containerPort: 15672 diff --git a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/rabbitmqservice.yaml b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/rabbitmqservice.yaml deleted file mode 100644 index fb51fce..0000000 --- a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/rabbitmqservice.yaml +++ /dev/null @@ -1,26 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: rabbitmq-lb - labels: - app: rabbitmq -spec: - selector: - app: rabbitmq - ports: - - name: epmd - protocol: TCP - port: 4369 - targetPort: 4369 - - name: ampq - protocol: TCP - port: 5672 - targetPort: 5672 - - name: management - protocol: TCP - port: 15672 - targetPort: 25672 - type: ClusterIP - - - diff --git a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/requirements.lock b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/requirements.lock index d53cf7c..de38552 100644 --- a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/requirements.lock +++ b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/requirements.lock @@ -1,6 +1,6 @@ dependencies: - name: xray repository: https://charts.jfrog.io/ - version: 6.0.6 -digest: sha256:339b5ec4e309ce2970ed34ebc700d6fe8f436d6cbe8dd5d352f0b080401752af -generated: "2020-10-01T15:04:29.008985-07:00" + version: 6.2.1 +digest: sha256:7bce8744ad24ebe2d962738cb688412c44c200b0b0015afb4471df479d826fde +generated: "2020-10-23T12:58:46.07336-07:00" diff --git a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/requirements.yaml b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/requirements.yaml index f6311b7..276689d 100644 --- a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/requirements.yaml +++ b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/requirements.yaml @@ -1,4 +1,4 @@ dependencies: - name: xray - version: 6.0.6 + version: 6.2.1 repository: https://charts.jfrog.io/ diff --git a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/values.yaml b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/values.yaml index b242f3d..fcb1656 100755 --- a/Openshift4/operator/xray-operator/helm-charts/openshift-xray/values.yaml +++ b/Openshift4/operator/xray-operator/helm-charts/openshift-xray/values.yaml @@ -13,15 +13,30 @@ xray: url: "OVERRIDE" user: "OVERRIDE" password: "OVERRIDE" + initContainerImage: registry.connect.redhat.com/jfrog/init:1.0.1 common: xrayUserId: "1000721035" xrayGroupId: "1000721035" + xrayVersion: "3.10.3-1" + customInitContainers: | + - name: "prepare-uid-persistent-volume" + image: "{{ .Values.initContainerImage }}" + imagePullPolicy: "{{ .Values.imagePullPolicy }}" + command: + - 'sh' + - '-c' + - > + chown -Rv {{ .Values.common.xrayUserId }}:{{ .Values.common.xrayGroupId }} {{ .Values.xray.persistence.mountPath }} + securityContext: + runAsUser: 0 + volumeMounts: + - mountPath: "{{ .Values.xray.persistence.mountPath }}" + name: data-volume analysis: name: xray-analysis image: registry: registry.connect.redhat.com repository: jfrog/xray-analysis - tag: 3.8.8 updateStrategy: RollingUpdate podManagementPolicy: Parallel preStartCommand: @@ -30,7 +45,6 @@ xray: image: registry: registry.connect.redhat.com repository: jfrog/xray-indexer - tag: 3.8.8 updateStrategy: RollingUpdate podManagementPolicy: Parallel persist: @@ -38,7 +52,6 @@ xray: image: registry: registry.connect.redhat.com repository: jfrog/xray-persist - tag: 3.8.8 updateStrategy: RollingUpdate podManagementPolicy: Parallel persistence: @@ -49,7 +62,6 @@ xray: image: registry: registry.connect.redhat.com repository: jfrog/xray-server - tag: 3.8.8 updateStrategy: RollingUpdate podManagementPolicy: Parallel replicaCount: 1 @@ -58,14 +70,14 @@ xray: image: registry: registry.connect.redhat.com repository: jfrog/xray-router - tag: 1.4.3 imagePullPolicy: IfNotPresent + tag: 3.10.3-1 rabbitmq-ha: enabled: true replicaCount: 1 image: repository: registry.connect.redhat.com/jfrog/xray-rabbitmq - tag: 3.8.9 + tag: 3.10.3-1 rabbitmqEpmdPort: 4369 rabbitmqNodePort: 5672 rabbitmqManagerPort: 15672 diff --git a/Openshift4/operator/xray-operator/watches.yaml b/Openshift4/operator/xray-operator/watches.yaml index 3fc15af..c74dbda 100644 --- a/Openshift4/operator/xray-operator/watches.yaml +++ b/Openshift4/operator/xray-operator/watches.yaml @@ -3,3 +3,11 @@ group: charts.helm.k8s.io kind: OpenshiftXray chart: helm-charts/openshift-xray + overrideValues: + xray.initContainerImage.override: $RELATED_IMAGE_XRAY_INIT_IMAGE_REPOSITORY + xray.server.image.override: $RELATED_IMAGE_XRAY_SERVER_IMAGE_REPOSITORY + xray.analysis.image.override: $RELATED_IMAGE_XRAY_ANALYSIS_IMAGE_REPOSITORY + xray.persist.image.override: $RELATED_IMAGE_XRAY_PERSIST_IMAGE_REPOSITORY + xray.indexer.image.override: $RELATED_IMAGE_XRAY_INDEXER_IMAGE_REPOSITORY + xray.router.image.override: $RELATED_IMAGE_XRAY_ROUTER_IMAGE_REPOSITORY + xray.rabbitmq-ha.image.override: $RELATED_IMAGE_XRAY_RABBITMQ_IMAGE_REPOSITORY \ No newline at end of file From f6008eba919a511dbdd07e489d2c99c6c86989dc Mon Sep 17 00:00:00 2001 From: John Peterson Date: Fri, 23 Oct 2020 15:27:07 -0700 Subject: [PATCH 8/9] Fixing changelog versions to be accurate --- Openshift4/helm/openshift-xray/CHANGELOG.md | 3 +++ Openshift4/operator/pipeline-operator/CHANGELOG.md | 4 ++-- Openshift4/operator/xray-operator/CHANGELOG.md | 6 ++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Openshift4/helm/openshift-xray/CHANGELOG.md b/Openshift4/helm/openshift-xray/CHANGELOG.md index 09067a3..c2e78ea 100755 --- a/Openshift4/helm/openshift-xray/CHANGELOG.md +++ b/Openshift4/helm/openshift-xray/CHANGELOG.md @@ -1,6 +1,9 @@ # JFrog Openshift Artifactory-Xray Chart Changelog All changes to this chart will be documented in this file. +## [6.2.1] Oct 23rd, 2020 +* Updating to Xray chart version 6.2.1 and Xray app version 3.10.3 + ## [6.1.2] Oct 22nd, 2020 * Updating to Xray chart version 6.1.2 and Xray app version 3.9.1 diff --git a/Openshift4/operator/pipeline-operator/CHANGELOG.md b/Openshift4/operator/pipeline-operator/CHANGELOG.md index 69b3240..4afc510 100755 --- a/Openshift4/operator/pipeline-operator/CHANGELOG.md +++ b/Openshift4/operator/pipeline-operator/CHANGELOG.md @@ -1,5 +1,5 @@ # JFrog Openshift Xray Chart Changelog All changes to this chart will be documented in this file. -## [1.1.1] Oct 9, 2020 -* Operator version 1.1.1 Openshift RT version 7.9.0, Xray version 3.8.8, Pipelines version 1.8.0 +## [1.0.0] Oct 23, 2020 +* Operator version 1.0.0 Pipelines version 1.8.0 diff --git a/Openshift4/operator/xray-operator/CHANGELOG.md b/Openshift4/operator/xray-operator/CHANGELOG.md index 7d1fbfb..8863a3e 100755 --- a/Openshift4/operator/xray-operator/CHANGELOG.md +++ b/Openshift4/operator/xray-operator/CHANGELOG.md @@ -1,6 +1,12 @@ # JFrog Openshift Xray Chart Changelog All changes to this chart will be documented in this file. +## [1.1.2] Oct 23rd, 2020 +* Deploying JFrog Xray 3.10.3 as an Operator into Openshift + +## [1.1.1] Oct 6, 2020 +* Bug Fixes + ## [1.1.0] Oct 1, 2020 * Deploying JFrog Xray 3.8.8 as an Operator into Openshift From e4e29e0fd9ed56f2c2ac905b8e2c5a8a19c19ba3 Mon Sep 17 00:00:00 2001 From: John Peterson Date: Fri, 23 Oct 2020 15:28:16 -0700 Subject: [PATCH 9/9] Updating Chart to requirement yaml subchart version --- Openshift4/helm/openshift-xray/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Openshift4/helm/openshift-xray/Chart.yaml b/Openshift4/helm/openshift-xray/Chart.yaml index 51784ef..f14e835 100755 --- a/Openshift4/helm/openshift-xray/Chart.yaml +++ b/Openshift4/helm/openshift-xray/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: 3.9.1 +appVersion: 3.10.3 description: Universal component scan for security and license inventory and impact analysis sources: - https://bintray.com/jfrog/product/xray/view @@ -13,4 +13,4 @@ maintainers: - email: johnp@jfrog.com name: John Peterson name: openshift-xray -version: 6.1.2 +version: 6.2.1