From c8af8150056deb0cce688d26084dffcbd143bdbd Mon Sep 17 00:00:00 2001 From: ewolinetz Date: Thu, 30 Mar 2017 15:12:51 -0500 Subject: Creating initial proposal doc for review --- docs/proposals/role_decomposition.md | 241 +++++++++++++++++++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 docs/proposals/role_decomposition.md diff --git a/docs/proposals/role_decomposition.md b/docs/proposals/role_decomposition.md new file mode 100644 index 000000000..1fd66b5e3 --- /dev/null +++ b/docs/proposals/role_decomposition.md @@ -0,0 +1,241 @@ +# Scaffolding for decomposing large roles + +## Why? + +Currently we have roles that are very large and encompass a lot of different +components. This makes for a lot of logic required within the role, can +create complex conditionals, and increases the learning curve for the role. + +## How? + +Creating a guide on how to approach breaking up a large role into smaller, +component based, roles. Also describe how to develop new roles, to avoid creating +large roles. + +## Proposal + +Create a new guide or append to the current contributing guide a process for +identifying large roles that can be split up, and how to compose smaller roles +going forward. + +### Large roles + +A role should be considered for decomposition if it: + +1) Configures/installs more than one product. +1) Can configure multiple variations of the same product that can live +side by side. +1) Has different entry points for upgrading and installing a product + +Large roles should be responsible for: + +1) Composing smaller roles to provide a full solution such as an Openshift Master +1) Ensuring that smaller roles are called in the correct order if necessary +1) Calling smaller roles with their required variables +1) Performing prerequisite tasks that small roles may depend on being in place +(openshift_logging certificate generation for example) + +### Small roles + +A small role should be able to: + +1) Be deployed independently of other products (this is different than requiring +being installed after other base components such as OCP) +1) Be self contained and able to determine facts that it requires to complete +1) Fail fast when facts it requires are not available or are invalid +1) "Make it so" based on provided variables and anything that may be required +as part of doing such (this should include data migrations) + +### Example using decomposition of openshift_logging + +The `openshift_logging` role was created as a port from the deployer image for +the `3.5` deliverable. It was a large role that created the service accounts, +configmaps, secrets, routes, and deployment configs/daemonset required for each +of its different components (Fluentd, Kibana, Curator, Elasticsearch). + +It was possible to configure any of the components independently of one another, +up to a point. However, it was an all of nothing installation and there was a +need from customers to be able to do things like just deploy Fluentd. + +Also being able to support multiple versions of configuration files would become +increasingly messy with a large role. Especially if the components had changes +at different intervals. + +#### Folding of responsibility + +There was a duplicate of work within the installation of three of the four logging +components where there was a possibility to deploy both an 'operations' and +'non-operations' cluster side-by-side. The first step was to collapse that +duplicate work into a single path and allow a variable to be provided to +configure such that either possibility could be created. + +#### Consolidation of responsibility + +The generation of OCP objects required for each component were being created in +the same task file, all Service Accounts were created at the same time, all secrets, +configmaps, etc. The only components that were not generated at the same time were +the deployment configs and the daemonset. The second step was to make the small +roles self contained and generate their own required objects. + +#### Consideration for prerequisites + +Currently the Aggregated Logging stack generates its own certificates as it has +some requirements that prevent it from utilizing the OCP cert generation service. +In order to make sure that all components were able to trust one another as they +did previously, until the cert generation service can be used, the certificate +generation is being handled within the top level `openshift_logging` role and +providing the location of the generated certificates to the individual roles. + +#### Snippets + +openshift_logging/tasks/install_logging.yaml +``` +- name: Install logging + include: "{{ role_path }}/tasks/install_support.yaml" + when: openshift_hosted_logging_install | default(true) | bool + + +## Elasticsearch +- include_role: + name: openshift_logging_elasticsearch + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" + +- include_role: + name: openshift_logging_elasticsearch + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" + openshift_logging_es_ops_deployment: true + when: + - openshift_logging_use_ops | bool + + +## Kibana +- include_role: + name: openshift_logging_kibana + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" + +- include_role: + name: openshift_logging_kibana + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" + openshift_logging_kibana_ops_deployment: true + when: + - openshift_logging_use_ops | bool + + +## Curator +- include_role: + name: openshift_logging_curator + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" + +- include_role: + name: openshift_logging_curator + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" + openshift_logging_curator_ops_deployment: true + when: + - openshift_logging_use_ops | bool + + +## Fluentd +- include_role: + name: openshift_logging_fluentd + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" + +- include: update_master_config.yaml +``` + +openshift_logging/tasks/install_support.yaml [old] +``` +--- +# This is the base configuration for installing the other components +- name: Check for logging project already exists + command: > + {{ openshift.common.client_binary }} --config={{ mktemp.stdout }}/admin.kubeconfig get project {{openshift_logging_namespace}} --no-headers + register: logging_project_result + ignore_errors: yes + when: not ansible_check_mode + changed_when: no + +- name: "Create logging project" + command: > + {{ openshift.common.admin_binary }} --config={{ mktemp.stdout }}/admin.kubeconfig new-project {{openshift_logging_namespace}} + when: not ansible_check_mode and "not found" in logging_project_result.stderr + +- name: Create logging cert directory + file: path={{openshift.common.config_base}}/logging state=directory mode=0755 + changed_when: False + check_mode: no + +- include: generate_certs.yaml + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" + +- name: Create temp directory for all our templates + file: path={{mktemp.stdout}}/templates state=directory mode=0755 + changed_when: False + check_mode: no + +- include: generate_secrets.yaml + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" + +- include: generate_configmaps.yaml + +- include: generate_services.yaml + +- name: Generate kibana-proxy oauth client + template: src=oauth-client.j2 dest={{mktemp.stdout}}/templates/oauth-client.yaml + vars: + secret: "{{oauth_secret}}" + when: oauth_secret is defined + check_mode: no + changed_when: no + +- include: generate_clusterroles.yaml + +- include: generate_rolebindings.yaml + +- include: generate_clusterrolebindings.yaml + +- include: generate_serviceaccounts.yaml + +- include: generate_routes.yaml +``` + +openshift_logging/tasks/install_support.yaml [new] +``` +--- +# This is the base configuration for installing the other components +- name: Set logging project + oc_project: + state: present + name: "{{ openshift_logging_namespace }}" + +- name: Create logging cert directory + file: path={{openshift.common.config_base}}/logging state=directory mode=0755 + changed_when: False + check_mode: no + +- include: generate_certs.yaml + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" + +- name: Create temp directory for all our templates + file: path={{mktemp.stdout}}/templates state=directory mode=0755 + changed_when: False + check_mode: no +``` + +# Limitations + +There will always be exceptions for some of these rules, however the majority of +roles should be able to fall within these guidelines. + +# Additional considerations + +Playbooks including playbooks (link to rteague's presentation?) -- cgit v1.2.3 From 1c402c309f1b507f95fb1db048a136453ea1494b Mon Sep 17 00:00:00 2001 From: ewolinetz Date: Wed, 5 Apr 2017 10:01:00 -0500 Subject: Update snippets and add bullet point on role dependency --- docs/proposals/role_decomposition.md | 81 ++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/docs/proposals/role_decomposition.md b/docs/proposals/role_decomposition.md index 1fd66b5e3..1b62e6629 100644 --- a/docs/proposals/role_decomposition.md +++ b/docs/proposals/role_decomposition.md @@ -45,6 +45,7 @@ being installed after other base components such as OCP) 1) Fail fast when facts it requires are not available or are invalid 1) "Make it so" based on provided variables and anything that may be required as part of doing such (this should include data migrations) +1) Have a minimal set of dependencies in meta/main.yml, just enough to do its job ### Example using decomposition of openshift_logging @@ -115,12 +116,40 @@ openshift_logging/tasks/install_logging.yaml name: openshift_logging_kibana vars: generated_certs_dir: "{{openshift.common.config_base}}/logging" + openshift_logging_kibana_namespace: "{{ openshift_logging_namespace }}" + openshift_logging_kibana_master_url: "{{ openshift_logging_master_url }}" + openshift_logging_kibana_master_public_url: "{{ openshift_logging_master_public_url }}" + openshift_logging_kibana_image_prefix: "{{ openshift_logging_image_prefix }}" + openshift_logging_kibana_image_version: "{{ openshift_logging_image_version }}" + openshift_logging_kibana_replicas: "{{ openshift_logging_kibana_replica_count }}" + openshift_logging_kibana_es_host: "{{ openshift_logging_es_host }}" + openshift_logging_kibana_es_port: "{{ openshift_logging_es_port }}" + openshift_logging_kibana_image_pull_secret: "{{ openshift_logging_image_pull_secret }}" - include_role: name: openshift_logging_kibana vars: generated_certs_dir: "{{openshift.common.config_base}}/logging" openshift_logging_kibana_ops_deployment: true + openshift_logging_kibana_namespace: "{{ openshift_logging_namespace }}" + openshift_logging_kibana_master_url: "{{ openshift_logging_master_url }}" + openshift_logging_kibana_master_public_url: "{{ openshift_logging_master_public_url }}" + openshift_logging_kibana_image_prefix: "{{ openshift_logging_image_prefix }}" + openshift_logging_kibana_image_version: "{{ openshift_logging_image_version }}" + openshift_logging_kibana_image_pull_secret: "{{ openshift_logging_image_pull_secret }}" + openshift_logging_kibana_es_host: "{{ openshift_logging_es_ops_host }}" + openshift_logging_kibana_es_port: "{{ openshift_logging_es_ops_port }}" + openshift_logging_kibana_nodeselector: "{{ openshift_logging_kibana_ops_nodeselector }}" + openshift_logging_kibana_cpu_limit: "{{ openshift_logging_kibana_ops_cpu_limit }}" + openshift_logging_kibana_memory_limit: "{{ openshift_logging_kibana_ops_memory_limit }}" + openshift_logging_kibana_hostname: "{{ openshift_logging_kibana_ops_hostname }}" + openshift_logging_kibana_replicas: "{{ openshift_logging_kibana_ops_replica_count }}" + openshift_logging_kibana_proxy_debug: "{{ openshift_logging_kibana_ops_proxy_debug }}" + openshift_logging_kibana_proxy_cpu_limit: "{{ openshift_logging_kibana_ops_proxy_cpu_limit }}" + openshift_logging_kibana_proxy_memory_limit: "{{ openshift_logging_kibana_ops_proxy_memory_limit }}" + openshift_logging_kibana_cert: "{{ openshift_logging_kibana_ops_cert }}" + openshift_logging_kibana_key: "{{ openshift_logging_kibana_ops_key }}" + openshift_logging_kibana_ca: "{{ openshift_logging_kibana_ops_ca}}" when: - openshift_logging_use_ops | bool @@ -130,12 +159,25 @@ openshift_logging/tasks/install_logging.yaml name: openshift_logging_curator vars: generated_certs_dir: "{{openshift.common.config_base}}/logging" + openshift_logging_curator_namespace: "{{ openshift_logging_namespace }}" + openshift_logging_curator_master_url: "{{ openshift_logging_master_url }}" + openshift_logging_curator_image_prefix: "{{ openshift_logging_image_prefix }}" + openshift_logging_curator_image_version: "{{ openshift_logging_image_version }}" + openshift_logging_curator_image_pull_secret: "{{ openshift_logging_image_pull_secret }}" - include_role: name: openshift_logging_curator vars: generated_certs_dir: "{{openshift.common.config_base}}/logging" openshift_logging_curator_ops_deployment: true + openshift_logging_curator_namespace: "{{ openshift_logging_namespace }}" + openshift_logging_curator_master_url: "{{ openshift_logging_master_url }}" + openshift_logging_curator_image_prefix: "{{ openshift_logging_image_prefix }}" + openshift_logging_curator_image_version: "{{ openshift_logging_image_version }}" + openshift_logging_curator_image_pull_secret: "{{ openshift_logging_image_pull_secret }}" + openshift_logging_curator_cpu_limit: "{{ openshift_logging_curator_ops_cpu_limit }}" + openshift_logging_curator_memory_limit: "{{ openshift_logging_curator_ops_memory_limit }}" + openshift_logging_curator_nodeselector: "{{ openshift_logging_curator_ops_nodeselector }}" when: - openshift_logging_use_ops | bool @@ -149,6 +191,45 @@ openshift_logging/tasks/install_logging.yaml - include: update_master_config.yaml ``` +openshift_logging_elasticsearch/meta/main.yaml +``` +--- +galaxy_info: + author: OpenShift Red Hat + description: OpenShift Aggregated Logging Elasticsearch Component + company: Red Hat, Inc. + license: Apache License, Version 2.0 + min_ansible_version: 2.2 + platforms: + - name: EL + versions: + - 7 + categories: + - cloud +dependencies: +- role: lib_openshift +``` + +openshift_logging/meta/main.yaml +``` +--- +galaxy_info: + author: OpenShift Red Hat + description: OpenShift Aggregated Logging + company: Red Hat, Inc. + license: Apache License, Version 2.0 + min_ansible_version: 2.2 + platforms: + - name: EL + versions: + - 7 + categories: + - cloud +dependencies: +- role: lib_openshift +- role: openshift_facts +``` + openshift_logging/tasks/install_support.yaml [old] ``` --- -- cgit v1.2.3 From 66f18efad7176eb4f1ad1926a9a3b5d96aa72e2f Mon Sep 17 00:00:00 2001 From: ewolinetz Date: Thu, 20 Apr 2017 18:59:57 -0500 Subject: Updating snippet contents, formatting and providing urls --- docs/proposals/role_decomposition.md | 63 ++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 35 deletions(-) diff --git a/docs/proposals/role_decomposition.md b/docs/proposals/role_decomposition.md index 1b62e6629..228b7de12 100644 --- a/docs/proposals/role_decomposition.md +++ b/docs/proposals/role_decomposition.md @@ -89,12 +89,29 @@ providing the location of the generated certificates to the individual roles. #### Snippets -openshift_logging/tasks/install_logging.yaml -``` -- name: Install logging - include: "{{ role_path }}/tasks/install_support.yaml" - when: openshift_hosted_logging_install | default(true) | bool +[openshift_logging/tasks/install_logging.yaml](https://github.com/ewolinetz/openshift-ansible/blob/logging_component_subroles/roles/openshift_logging/tasks/install_logging.yaml) +```yaml +- name: Gather OpenShift Logging Facts + openshift_logging_facts: + oc_bin: "{{openshift.common.client_binary}}" + openshift_logging_namespace: "{{openshift_logging_namespace}}" + +- name: Set logging project + oc_project: + state: present + name: "{{ openshift_logging_namespace }}" + +- name: Create logging cert directory + file: + path: "{{ openshift.common.config_base }}/logging" + state: directory + mode: 0755 + changed_when: False + check_mode: no +- include: generate_certs.yaml + vars: + generated_certs_dir: "{{openshift.common.config_base}}/logging" ## Elasticsearch - include_role: @@ -191,8 +208,8 @@ openshift_logging/tasks/install_logging.yaml - include: update_master_config.yaml ``` -openshift_logging_elasticsearch/meta/main.yaml -``` +[openshift_logging_elasticsearch/meta/main.yaml](https://github.com/ewolinetz/openshift-ansible/blob/logging_component_subroles/roles/openshift_logging_elasticsearch/meta/main.yaml) +```yaml --- galaxy_info: author: OpenShift Red Hat @@ -210,8 +227,8 @@ dependencies: - role: lib_openshift ``` -openshift_logging/meta/main.yaml -``` +[openshift_logging/meta/main.yaml](https://github.com/ewolinetz/openshift-ansible/blob/logging_component_subroles/roles/openshift_logging/meta/main.yaml) +```yaml --- galaxy_info: author: OpenShift Red Hat @@ -230,8 +247,8 @@ dependencies: - role: openshift_facts ``` -openshift_logging/tasks/install_support.yaml [old] -``` +[openshift_logging/tasks/install_support.yaml - old](https://github.com/openshift/openshift-ansible/blob/master/roles/openshift_logging/tasks/install_support.yaml) +```yaml --- # This is the base configuration for installing the other components - name: Check for logging project already exists @@ -288,30 +305,6 @@ openshift_logging/tasks/install_support.yaml [old] - include: generate_routes.yaml ``` -openshift_logging/tasks/install_support.yaml [new] -``` ---- -# This is the base configuration for installing the other components -- name: Set logging project - oc_project: - state: present - name: "{{ openshift_logging_namespace }}" - -- name: Create logging cert directory - file: path={{openshift.common.config_base}}/logging state=directory mode=0755 - changed_when: False - check_mode: no - -- include: generate_certs.yaml - vars: - generated_certs_dir: "{{openshift.common.config_base}}/logging" - -- name: Create temp directory for all our templates - file: path={{mktemp.stdout}}/templates state=directory mode=0755 - changed_when: False - check_mode: no -``` - # Limitations There will always be exceptions for some of these rules, however the majority of -- cgit v1.2.3 From bb9d1bd8af41c79586eb1c5d7b4f75932b632442 Mon Sep 17 00:00:00 2001 From: ewolinetz Date: Thu, 27 Apr 2017 16:48:11 -0500 Subject: Adding some more sections to additional considerations, being less rigid on large roles for composing -- can also be a playbook --- docs/proposals/role_decomposition.md | 42 ++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/docs/proposals/role_decomposition.md b/docs/proposals/role_decomposition.md index 228b7de12..b6c1d8c5b 100644 --- a/docs/proposals/role_decomposition.md +++ b/docs/proposals/role_decomposition.md @@ -27,7 +27,8 @@ A role should be considered for decomposition if it: side by side. 1) Has different entry points for upgrading and installing a product -Large roles should be responsible for: +Large roles1 should be responsible for: +> 1 or composing playbooks 1) Composing smaller roles to provide a full solution such as an Openshift Master 1) Ensuring that smaller roles are called in the correct order if necessary @@ -312,4 +313,41 @@ roles should be able to fall within these guidelines. # Additional considerations -Playbooks including playbooks (link to rteague's presentation?) +## Playbooks including playbooks +In some circumstances it does not make sense to have a composing role but instead +a playbook would be best for orchestrating the role flow. Decisions made regarding +playbooks including playbooks will need to be taken into consideration as part of +defining this process. +Ref: (link to rteague's presentation?) + +## Role dependencies +We want to make sure that our roles do not have any extra or unnecessary dependencies +in meta/main.yml without: + +1. Proposing the inclusion in a team meeting or as part of the PR review and getting agreement +1. Documenting in meta/main.yml why it is there and when it was agreed to (date) + +## Avoiding overly verbose roles +When we are splitting our roles up into smaller components we want to ensure we +avoid creating roles that are, for a lack of a better term, overly verbose. What +do we mean by that? If we have `openshift_master` as an example, and we were to +split it up, we would have a component for `etcd`, `docker`, and possibly for +its rpms/configs. We would want to avoid creating a role that would just create +certificates as those would make sense to be contained with the rpms and configs. +Likewise, when it comes to being able to restart the master, we wouldn't have a +role where that was its sole purpose. + +The same would apply for the `etcd` and `docker` roles. Anything that is required +as part of installing `etcd` such as generating certificates, installing rpms, +and upgrading data between versions should all be contained within the single +`etcd` role. + +## Enforcing standards +Certain naming standards like variable names could be verified as part of a Travis +test. If we were going to also enforce that a role either has tasks or includes +(for example) then we could create tests for that as well. + +## CI tests for individual roles +If we are able to correctly split up roles, it should be possible to test role +installations/upgrades like unit tests (assuming they would be able to be installed +independently of other components). -- cgit v1.2.3 From 7a643daa7ed629cd904cfb5fd5eec4260f0f1582 Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Tue, 13 Jun 2017 19:09:19 +0200 Subject: Refactor DiskAvailability for arbitrary paths Prepare the check to support verifying multiple paths, not only /var. --- .../openshift_checks/disk_availability.py | 96 ++++++++++++++-------- .../test/disk_availability_test.py | 2 +- 2 files changed, 64 insertions(+), 34 deletions(-) diff --git a/roles/openshift_health_checker/openshift_checks/disk_availability.py b/roles/openshift_health_checker/openshift_checks/disk_availability.py index 962148cb8..dbcbfbc8e 100644 --- a/roles/openshift_health_checker/openshift_checks/disk_availability.py +++ b/roles/openshift_health_checker/openshift_checks/disk_availability.py @@ -1,4 +1,6 @@ # pylint: disable=missing-docstring +import os.path + from openshift_checks import OpenShiftCheck, OpenShiftCheckException, get_var from openshift_checks.mixins import NotContainerizedMixin @@ -12,56 +14,84 @@ class DiskAvailability(NotContainerizedMixin, OpenShiftCheck): # Values taken from the official installation documentation: # https://docs.openshift.org/latest/install_config/install/prerequisites.html#system-requirements recommended_disk_space_bytes = { - "masters": 40 * 10**9, - "nodes": 15 * 10**9, - "etcd": 20 * 10**9, + '/var': { + 'masters': 40 * 10**9, + 'nodes': 15 * 10**9, + 'etcd': 20 * 10**9, + }, } @classmethod def is_active(cls, task_vars): """Skip hosts that do not have recommended disk space requirements.""" group_names = get_var(task_vars, "group_names", default=[]) - has_disk_space_recommendation = bool(set(group_names).intersection(cls.recommended_disk_space_bytes)) + active_groups = set() + for recommendation in cls.recommended_disk_space_bytes.values(): + active_groups.update(recommendation.keys()) + has_disk_space_recommendation = bool(active_groups.intersection(group_names)) return super(DiskAvailability, cls).is_active(task_vars) and has_disk_space_recommendation def run(self, tmp, task_vars): group_names = get_var(task_vars, "group_names") ansible_mounts = get_var(task_vars, "ansible_mounts") - free_bytes = self.openshift_available_disk(ansible_mounts) - - recommended_min = max(self.recommended_disk_space_bytes.get(name, 0) for name in group_names) - configured_min = int(get_var(task_vars, "openshift_check_min_host_disk_gb", default=0)) * 10**9 - min_free_bytes = configured_min or recommended_min - - if free_bytes < min_free_bytes: - return { - 'failed': True, - 'msg': ( - 'Available disk space ({:.1f} GB) for the volume containing ' - '"/var" is below minimum recommended space ({:.1f} GB)' - ).format(float(free_bytes) / 10**9, float(min_free_bytes) / 10**9) + ansible_mounts = {mount['mount']: mount for mount in ansible_mounts} + + user_config = get_var(task_vars, "openshift_check_min_host_disk_gb", default={}) + try: + # For backwards-compatibility, if openshift_check_min_host_disk_gb + # is a number, then it overrides the required config for '/var'. + number = float(user_config) + user_config = { + '/var': { + 'masters': number, + 'nodes': number, + 'etcd': number, + }, } + except TypeError: + # If it is not a number, then it should be a nested dict. + pass + + + for path, recommendation in self.recommended_disk_space_bytes.items(): + free_bytes = self.free_bytes(path, ansible_mounts) + recommended_bytes = max(recommendation.get(name, 0) for name in group_names) + + config = user_config.get(path, {}) + # NOTE: the user config is in GB, but we compare bytes, thus the + # conversion. + config_bytes = max(config.get(name, 0) for name in group_names) * 10**9 + recommended_bytes = config_bytes or recommended_bytes + + if free_bytes < recommended_bytes: + free_gb = float(free_bytes) / 10**9 + recommended_gb = float(recommended_bytes) / 10**9 + return { + 'failed': True, + 'msg': ( + 'Available disk space in "{}" ({:.1f} GB) ' + 'is below minimum recommended ({:.1f} GB)' + ).format(path, free_gb, recommended_gb) + } return {} @staticmethod - def openshift_available_disk(ansible_mounts): - """Determine the available disk space for an OpenShift installation. - - ansible_mounts should be a list of dicts like the 'setup' Ansible module - returns. - """ - # priority list in descending order - supported_mnt_paths = ["/var", "/"] - available_mnts = {mnt.get("mount"): mnt for mnt in ansible_mounts} + def free_bytes(path, ansible_mounts): + """Return the size available in path based on ansible_mounts.""" + mount_point = path + # arbitry value to prevent an infinite loop, in the unlike case that '/' + # is not in ansible_mounts. + max_depth = 32 + while mount_point not in ansible_mounts and max_depth > 0: + mount_point = os.path.dirname(mount_point) + max_depth -= 1 try: - for path in supported_mnt_paths: - if path in available_mnts: - return available_mnts[path]["size_available"] + free_bytes = ansible_mounts[mount_point]['size_available'] except KeyError: - pass + known_mounts = ', '.join('"{}"'.format(mount) for mount in sorted(ansible_mounts)) or 'none' + msg = 'Unable to determine disk availability for "{}". Known mount points: {}.' + raise OpenShiftCheckException(msg.format(path, known_mounts)) - paths = ''.join(sorted(available_mnts)) or 'none' - msg = "Unable to determine available disk space. Paths mounted: {}.".format(paths) - raise OpenShiftCheckException(msg) + return free_bytes diff --git a/roles/openshift_health_checker/test/disk_availability_test.py b/roles/openshift_health_checker/test/disk_availability_test.py index b353fa610..de09c51da 100644 --- a/roles/openshift_health_checker/test/disk_availability_test.py +++ b/roles/openshift_health_checker/test/disk_availability_test.py @@ -38,7 +38,7 @@ def test_cannot_determine_available_disk(ansible_mounts, extra_words): with pytest.raises(OpenShiftCheckException) as excinfo: check.run(tmp=None, task_vars=task_vars) - for word in 'determine available disk'.split() + extra_words: + for word in 'determine disk availability'.split() + extra_words: assert word in str(excinfo.value) -- cgit v1.2.3 From 75082afc3a2cc9fed1966479dc31946962101488 Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Tue, 13 Jun 2017 19:11:43 +0200 Subject: Require at least 1GB in /usr/bin/local and tempdir During install, those paths are used and require some free space. --- .../openshift_checks/disk_availability.py | 14 ++++++++++++++ .../test/disk_availability_test.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/roles/openshift_health_checker/openshift_checks/disk_availability.py b/roles/openshift_health_checker/openshift_checks/disk_availability.py index dbcbfbc8e..2c4642352 100644 --- a/roles/openshift_health_checker/openshift_checks/disk_availability.py +++ b/roles/openshift_health_checker/openshift_checks/disk_availability.py @@ -1,5 +1,6 @@ # pylint: disable=missing-docstring import os.path +import tempfile from openshift_checks import OpenShiftCheck, OpenShiftCheckException, get_var from openshift_checks.mixins import NotContainerizedMixin @@ -19,6 +20,19 @@ class DiskAvailability(NotContainerizedMixin, OpenShiftCheck): 'nodes': 15 * 10**9, 'etcd': 20 * 10**9, }, + # Used to copy client binaries into, + # see roles/openshift_cli/library/openshift_container_binary_sync.py. + '/usr/local/bin': { + 'masters': 1 * 10**9, + 'nodes': 1 * 10**9, + 'etcd': 1 * 10**9, + }, + # Used as temporary storage in several cases. + tempfile.gettempdir(): { + 'masters': 1 * 10**9, + 'nodes': 1 * 10**9, + 'etcd': 1 * 10**9, + }, } @classmethod diff --git a/roles/openshift_health_checker/test/disk_availability_test.py b/roles/openshift_health_checker/test/disk_availability_test.py index de09c51da..0c111a46d 100644 --- a/roles/openshift_health_checker/test/disk_availability_test.py +++ b/roles/openshift_health_checker/test/disk_availability_test.py @@ -81,7 +81,7 @@ def test_cannot_determine_available_disk(ansible_mounts, extra_words): [{ # not enough space on / ... 'mount': '/', - 'size_available': 0, + 'size_available': 2 * 10**9, }, { # ... but enough on /var 'mount': '/var', -- cgit v1.2.3 From 022cf67ea6be52ee46bb52aa6e78b9690698dc2e Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Mon, 19 Jun 2017 17:35:34 +0200 Subject: Add suggestion to check disk space in any path --- .../openshift_health_checker/openshift_checks/disk_availability.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/roles/openshift_health_checker/openshift_checks/disk_availability.py b/roles/openshift_health_checker/openshift_checks/disk_availability.py index 2c4642352..638201495 100644 --- a/roles/openshift_health_checker/openshift_checks/disk_availability.py +++ b/roles/openshift_health_checker/openshift_checks/disk_availability.py @@ -66,7 +66,11 @@ class DiskAvailability(NotContainerizedMixin, OpenShiftCheck): # If it is not a number, then it should be a nested dict. pass - + # TODO: as suggested in + # https://github.com/openshift/openshift-ansible/pull/4436#discussion_r122180021, + # maybe we could support checking disk availability in paths that are + # not part of the official recommendation but present in the user + # configuration. for path, recommendation in self.recommended_disk_space_bytes.items(): free_bytes = self.free_bytes(path, ansible_mounts) recommended_bytes = max(recommendation.get(name, 0) for name in group_names) -- cgit v1.2.3 From af4e0fec218c9e2c089854fa279b0537530bfd75 Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Mon, 19 Jun 2017 17:40:16 +0200 Subject: Add module docstring --- roles/openshift_health_checker/openshift_checks/disk_availability.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roles/openshift_health_checker/openshift_checks/disk_availability.py b/roles/openshift_health_checker/openshift_checks/disk_availability.py index 638201495..ac30d5fa5 100644 --- a/roles/openshift_health_checker/openshift_checks/disk_availability.py +++ b/roles/openshift_health_checker/openshift_checks/disk_availability.py @@ -1,4 +1,5 @@ -# pylint: disable=missing-docstring +"""Check that there is enough disk space in predefined paths.""" + import os.path import tempfile -- cgit v1.2.3 From 11762c063f52d46709db560479234b1d49e602b8 Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Tue, 13 Jun 2017 20:18:04 +0200 Subject: Enable disk check on containerized installs According to the docs the disk requirements should be similar to non-containerized installs. https://docs.openshift.org/latest/install_config/install/rpm_vs_containerized.html#containerized-storage-requirements --- .../openshift_checks/disk_availability.py | 3 +-- .../test/disk_availability_test.py | 23 ++++++++++------------ 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/roles/openshift_health_checker/openshift_checks/disk_availability.py b/roles/openshift_health_checker/openshift_checks/disk_availability.py index ac30d5fa5..e93e81efa 100644 --- a/roles/openshift_health_checker/openshift_checks/disk_availability.py +++ b/roles/openshift_health_checker/openshift_checks/disk_availability.py @@ -4,10 +4,9 @@ import os.path import tempfile from openshift_checks import OpenShiftCheck, OpenShiftCheckException, get_var -from openshift_checks.mixins import NotContainerizedMixin -class DiskAvailability(NotContainerizedMixin, OpenShiftCheck): +class DiskAvailability(OpenShiftCheck): """Check that recommended disk space is available before a first-time install.""" name = "disk_availability" diff --git a/roles/openshift_health_checker/test/disk_availability_test.py b/roles/openshift_health_checker/test/disk_availability_test.py index 0c111a46d..945b9eafc 100644 --- a/roles/openshift_health_checker/test/disk_availability_test.py +++ b/roles/openshift_health_checker/test/disk_availability_test.py @@ -3,22 +3,19 @@ import pytest from openshift_checks.disk_availability import DiskAvailability, OpenShiftCheckException -@pytest.mark.parametrize('group_names,is_containerized,is_active', [ - (['masters'], False, True), - # ensure check is skipped on containerized installs - (['masters'], True, False), - (['nodes'], False, True), - (['etcd'], False, True), - (['masters', 'nodes'], False, True), - (['masters', 'etcd'], False, True), - ([], False, False), - (['lb'], False, False), - (['nfs'], False, False), +@pytest.mark.parametrize('group_names,is_active', [ + (['masters'], True), + (['nodes'], True), + (['etcd'], True), + (['masters', 'nodes'], True), + (['masters', 'etcd'], True), + ([], False), + (['lb'], False), + (['nfs'], False), ]) -def test_is_active(group_names, is_containerized, is_active): +def test_is_active(group_names, is_active): task_vars = dict( group_names=group_names, - openshift=dict(common=dict(is_containerized=is_containerized)), ) assert DiskAvailability.is_active(task_vars=task_vars) == is_active -- cgit v1.2.3 From ffeac220ea2764c02a4ebd9b5e006e82886150bd Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Fri, 16 Jun 2017 10:56:03 +0200 Subject: PAPR: customize disk space requirements Currently the job reports only 1.7 GB free and it has been able to perform installs, so setting the requirement down to 1.5 GB. --- .papr.inventory | 1 + 1 file changed, 1 insertion(+) diff --git a/.papr.inventory b/.papr.inventory index 23bc9923c..878d434e2 100644 --- a/.papr.inventory +++ b/.papr.inventory @@ -9,6 +9,7 @@ ansible_python_interpreter=/usr/bin/python3 deployment_type=origin openshift_image_tag="{{ lookup('env', 'OPENSHIFT_IMAGE_TAG') }}" openshift_master_default_subdomain="{{ lookup('env', 'RHCI_ocp_node1_IP') }}.xip.io" +openshift_check_min_host_disk_gb=1.5 openshift_check_min_host_memory_gb=1.9 [masters] -- cgit v1.2.3 From 11040f1b76981c22d62d17d1d22a3741e50a27fd Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Fri, 9 Jun 2017 17:04:19 +0200 Subject: Capture exceptions when resolving available checks Calling the action plugin (e.g. when running a playbook) with an incorrect check name was raising an unhandled exception, leading to poor output in Ansible (requiring a higher verbosity level to see what is going wrong). --- .../action_plugins/openshift_health_check.py | 5 ++--- roles/openshift_health_checker/test/action_plugin_test.py | 12 +++++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/roles/openshift_health_checker/action_plugins/openshift_health_check.py b/roles/openshift_health_checker/action_plugins/openshift_health_check.py index a62e4331e..0390dc82e 100644 --- a/roles/openshift_health_checker/action_plugins/openshift_health_check.py +++ b/roles/openshift_health_checker/action_plugins/openshift_health_check.py @@ -38,14 +38,13 @@ class ActionModule(ActionBase): try: known_checks = self.load_known_checks() + args = self._task.args + resolved_checks = resolve_checks(args.get("checks", []), known_checks.values()) except OpenShiftCheckException as e: result["failed"] = True result["msg"] = str(e) return result - args = self._task.args - resolved_checks = resolve_checks(args.get("checks", []), known_checks.values()) - result["checks"] = check_results = {} user_disabled_checks = [ diff --git a/roles/openshift_health_checker/test/action_plugin_test.py b/roles/openshift_health_checker/test/action_plugin_test.py index 6ebf0ebb2..9383b233c 100644 --- a/roles/openshift_health_checker/test/action_plugin_test.py +++ b/roles/openshift_health_checker/test/action_plugin_test.py @@ -59,7 +59,7 @@ def failed(result, msg_has=None): if msg_has is not None: assert 'msg' in result for term in msg_has: - assert term in result['msg'] + assert term.lower() in result['msg'].lower() return result.get('failed', False) @@ -178,6 +178,16 @@ def test_action_plugin_run_check_exception(plugin, task_vars, monkeypatch): assert not skipped(result) +def test_action_plugin_resolve_checks_exception(plugin, task_vars, monkeypatch): + monkeypatch.setattr(plugin, 'load_known_checks', lambda: {}) + + result = plugin.run(tmp=None, task_vars=task_vars) + + assert failed(result, msg_has=['unknown', 'name']) + assert not changed(result) + assert not skipped(result) + + @pytest.mark.parametrize('names,all_checks,expected', [ ([], [], set()), ( -- cgit v1.2.3 From 5b21d78d166a3266064cf0ead4f6e4e9a2957c22 Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 23 Jun 2017 11:25:30 -0400 Subject: Get rid of openshift_facts dep in rhel_subscribe Because you can't install PyYAML before you subscribe --- roles/rhel_subscribe/meta/main.yml | 3 +-- roles/rhel_subscribe/tasks/main.yml | 10 ++++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/roles/rhel_subscribe/meta/main.yml b/roles/rhel_subscribe/meta/main.yml index 0bbeadd34..23d65c7ef 100644 --- a/roles/rhel_subscribe/meta/main.yml +++ b/roles/rhel_subscribe/meta/main.yml @@ -1,3 +1,2 @@ --- -dependencies: - - role: openshift_facts +dependencies: [] diff --git a/roles/rhel_subscribe/tasks/main.yml b/roles/rhel_subscribe/tasks/main.yml index 28c3c7080..453044a6e 100644 --- a/roles/rhel_subscribe/tasks/main.yml +++ b/roles/rhel_subscribe/tasks/main.yml @@ -21,6 +21,11 @@ msg: Either rhsub_pass or the rhel_subscription_pass env variable are required for this role. when: rhel_subscription_pass is not defined +- name: Detecting Atomic Host Operating System + stat: + path: /run/ostree-booted + register: ostree_booted + - name: Satellite preparation command: "rpm -Uvh http://{{ rhel_subscription_server }}/pub/katello-ca-consumer-latest.noarch.rpm" args: @@ -57,5 +62,6 @@ when: openshift_pool_id.stdout != '' - include: enterprise.yml - when: deployment_type in [ 'enterprise', 'atomic-enterprise', 'openshift-enterprise' ] and - not openshift.common.is_atomic | bool + when: + - deployment_type in [ 'enterprise', 'atomic-enterprise', 'openshift-enterprise' ] + - not ostree_booted.stat.exists | bool -- cgit v1.2.3 From 055f7182b78feb29909539fca86e1ef55d1fc7db Mon Sep 17 00:00:00 2001 From: Luke Meyer Date: Tue, 27 Jun 2017 14:23:27 -0400 Subject: docker_storage check: make vgs return sane output fix bug 1464974 https://bugzilla.redhat.com/show_bug.cgi?id=1464974 Specify --units on vgs call. In my testing with lvm 2.0.2.171(2) on RHEL Atomic Host 7.4, this turned a response of "<4.07g" into "4.07g" which should resolve the issue. I haven't found what the "<" is for in the first place but I'm thinking this should at least be a safe change. --- roles/openshift_health_checker/openshift_checks/docker_storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/openshift_health_checker/openshift_checks/docker_storage.py b/roles/openshift_health_checker/openshift_checks/docker_storage.py index 2bd615457..8d0fbcc9c 100644 --- a/roles/openshift_health_checker/openshift_checks/docker_storage.py +++ b/roles/openshift_health_checker/openshift_checks/docker_storage.py @@ -143,7 +143,7 @@ class DockerStorage(DockerHostMixin, OpenShiftCheck): "so the available storage in the VG cannot be determined.".format(pool) ) vg_name = match.groups()[0].replace("--", "-") - vgs_cmd = "/sbin/vgs --noheadings -o vg_free --select vg_name=" + vg_name + vgs_cmd = "/sbin/vgs --noheadings -o vg_free --units g --select vg_name=" + vg_name # should return free space like " 12.00g" if the VG exists; empty if it does not ret = self.execute_module("command", {"_raw_params": vgs_cmd}, task_vars=task_vars) -- cgit v1.2.3 From 5377c1d32486d0e22f19d2d3e247f05239da8a2e Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Wed, 28 Jun 2017 15:37:09 -0400 Subject: Add a retry to the docker restart handler --- roles/docker/handlers/main.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/roles/docker/handlers/main.yml b/roles/docker/handlers/main.yml index 7f91afb37..3a4f4ba92 100644 --- a/roles/docker/handlers/main.yml +++ b/roles/docker/handlers/main.yml @@ -4,6 +4,11 @@ systemd: name: "{{ openshift.docker.service_name }}" state: restarted + register: r_docker_restart_docker_result + until: not r_docker_restart_docker_result | failed + retries: 1 + delay: 30 + when: not docker_service_status_changed | default(false) | bool - name: restart udev -- cgit v1.2.3 From 95d94f1e7611d5763022b1c6fe15f26fa6445055 Mon Sep 17 00:00:00 2001 From: Jan Chaloupka Date: Thu, 29 Jun 2017 17:20:46 +0200 Subject: fix backup and working directory for etcd run as a system container --- roles/etcd_common/tasks/backup.yml | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/roles/etcd_common/tasks/backup.yml b/roles/etcd_common/tasks/backup.yml index 4a4832275..2384eeb58 100644 --- a/roles/etcd_common/tasks/backup.yml +++ b/roles/etcd_common/tasks/backup.yml @@ -1,10 +1,19 @@ --- - set_fact: - l_etcd_backup_dir: "{{ etcd_data_dir }}/openshift-backup-{{ r_etcd_common_backup_tag }}{{ r_etcd_common_backup_sufix_name }}" + l_etcd_data_dir: "{{ etcd_data_dir }}{{ '/etcd.etcd' if r_etcd_common_etcd_runtime == 'runc' else '' }}" + +- set_fact: + l_etcd_incontainer_data_dir: "{{ etcd_data_dir }}" + +- set_fact: + l_etcd_incontainer_backup_dir: "{{ l_etcd_incontainer_data_dir }}/openshift-backup-{{ r_etcd_common_backup_tag }}{{ r_etcd_common_backup_sufix_name }}" + +- set_fact: + l_etcd_backup_dir: "{{ l_etcd_data_dir }}/openshift-backup-{{ r_etcd_common_backup_tag }}{{ r_etcd_common_backup_sufix_name }}" # TODO: replace shell module with command and update later checks - name: Check available disk space for etcd backup - shell: df --output=avail -k {{ etcd_data_dir }} | tail -n 1 + shell: df --output=avail -k {{ l_etcd_data_dir }} | tail -n 1 register: l_avail_disk # AUDIT:changed_when: `false` because we are only inspecting # state, not manipulating anything @@ -12,7 +21,7 @@ # TODO: replace shell module with command and update later checks - name: Check current etcd disk usage - shell: du --exclude='*openshift-backup*' -k {{ etcd_data_dir }} | tail -n 1 | cut -f1 + shell: du --exclude='*openshift-backup*' -k {{ l_etcd_data_dir }} | tail -n 1 | cut -f1 register: l_etcd_disk_usage when: r_etcd_common_embedded_etcd | bool # AUDIT:changed_when: `false` because we are only inspecting @@ -48,19 +57,19 @@ - name: Generate etcd backup command: > - {{ r_etcd_common_etcdctl_command }} backup --data-dir={{ etcd_data_dir }} - --backup-dir={{ l_etcd_backup_dir }} + {{ r_etcd_common_etcdctl_command }} backup --data-dir={{ l_etcd_incontainer_data_dir }} + --backup-dir={{ l_etcd_incontainer_backup_dir }} # According to the docs change you can simply copy snap/db # https://github.com/openshift/openshift-docs/commit/b38042de02d9780842dce95cfa0ef45d53b58bc6 - name: Check for v3 data store stat: - path: "{{ etcd_data_dir }}/member/snap/db" + path: "{{ l_etcd_data_dir }}/member/snap/db" register: l_v3_db - name: Copy etcd v3 data store command: > - cp -a {{ etcd_data_dir }}/member/snap/db + cp -a {{ l_etcd_data_dir }}/member/snap/db {{ l_etcd_backup_dir }}/member/snap/ when: l_v3_db.stat.exists -- cgit v1.2.3 From de3d6c983200335ab685faea9f00777ce3b7c3fc Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Thu, 29 Jun 2017 17:59:24 +0200 Subject: upgrade: fix name for the etcd system container Fixes this error when running upgrade_etcd.yml: The conditional check 'etcd_container_version | default('99') | version_compare(etcd_upgrade_version,'<')' failed. The error was: Version comparison: LooseVersion instance has no attribute 'version' Signed-off-by: Giuseppe Scrivano --- playbooks/common/openshift-cluster/upgrades/etcd/upgrade.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbooks/common/openshift-cluster/upgrades/etcd/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/etcd/upgrade.yml index 0431c1ce0..39e82498d 100644 --- a/playbooks/common/openshift-cluster/upgrades/etcd/upgrade.yml +++ b/playbooks/common/openshift-cluster/upgrades/etcd/upgrade.yml @@ -36,7 +36,7 @@ - not openshift.common.is_etcd_system_container | bool - name: Record containerized etcd version (runc) - command: runc exec etcd_container rpm -qa --qf '%{version}' etcd\* + command: runc exec etcd rpm -qa --qf '%{version}' etcd\* register: etcd_container_version_runc failed_when: false # AUDIT:changed_when: `false` because we are only inspecting -- cgit v1.2.3 From e0be69fc9e033f392d4559941be5d605511d9f45 Mon Sep 17 00:00:00 2001 From: ewolinetz Date: Thu, 29 Jun 2017 12:11:17 -0500 Subject: Adding become: false to local_action tasks --- roles/openshift_metrics/tasks/generate_hawkular_certificates.yaml | 3 +++ roles/openshift_metrics/tasks/install_support.yaml | 2 ++ roles/openshift_metrics/tasks/main.yaml | 2 ++ 3 files changed, 7 insertions(+) diff --git a/roles/openshift_metrics/tasks/generate_hawkular_certificates.yaml b/roles/openshift_metrics/tasks/generate_hawkular_certificates.yaml index 7b81b3c10..8d7ee00ed 100644 --- a/roles/openshift_metrics/tasks/generate_hawkular_certificates.yaml +++ b/roles/openshift_metrics/tasks/generate_hawkular_certificates.yaml @@ -17,14 +17,17 @@ local_action: copy dest="{{ local_tmp.stdout }}/{{ item }}.pwd" content="{{ 15 | oo_random_word }}" with_items: - hawkular-metrics + become: false - local_action: slurp src="{{ local_tmp.stdout }}/hawkular-metrics.pwd" register: hawkular_metrics_pwd no_log: true + become: false - name: generate htpasswd file for hawkular metrics local_action: htpasswd path="{{ local_tmp.stdout }}/hawkular-metrics.htpasswd" name=hawkular password="{{ hawkular_metrics_pwd.content | b64decode }}" no_log: true + become: false - name: copy local generated passwords to target copy: diff --git a/roles/openshift_metrics/tasks/install_support.yaml b/roles/openshift_metrics/tasks/install_support.yaml index 5cefb273d..584e3be05 100644 --- a/roles/openshift_metrics/tasks/install_support.yaml +++ b/roles/openshift_metrics/tasks/install_support.yaml @@ -4,6 +4,7 @@ register: htpasswd_check failed_when: no changed_when: no + become: false - fail: msg="'htpasswd' is unavailable. Please install httpd-tools on the control node" when: htpasswd_check.rc == 1 @@ -13,6 +14,7 @@ register: keytool_check failed_when: no changed_when: no + become: false - fail: msg="'keytool' is unavailable. Please install java-1.8.0-openjdk-headless on the control node" when: keytool_check.rc == 1 diff --git a/roles/openshift_metrics/tasks/main.yaml b/roles/openshift_metrics/tasks/main.yaml index 0b5f23c24..eaabdd20f 100644 --- a/roles/openshift_metrics/tasks/main.yaml +++ b/roles/openshift_metrics/tasks/main.yaml @@ -1,6 +1,7 @@ --- - local_action: shell python -c 'import passlib' 2>/dev/null || echo not installed register: passlib_result + become: false - name: Check that python-passlib is available on the control host assert: @@ -52,3 +53,4 @@ tags: metrics_cleanup changed_when: False check_mode: no + become: false -- cgit v1.2.3 From 6d4c84b272f11dfd98956a0725a795eacd599a60 Mon Sep 17 00:00:00 2001 From: Russell Teague Date: Thu, 29 Jun 2017 15:26:38 -0400 Subject: Correct version comparisons to ensure proper evaluation When a user supplies the openshift_image_tag inventory fact as '3.5', the evaluation of `version >= LooseVersion('3.5.0')` will return False. Changing the evaluation against only the X.X release will properly return True. --- roles/openshift_facts/library/openshift_facts.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index 663423061..cc2a1d2eb 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -912,17 +912,17 @@ def set_version_facts_if_unset(facts): version_gte_3_1_1_or_1_1_1 = version >= LooseVersion('1.1.1') version_gte_3_2_or_1_2 = version >= LooseVersion('1.2.0') version_gte_3_3_or_1_3 = version >= LooseVersion('1.3.0') - version_gte_3_4_or_1_4 = version >= LooseVersion('1.4.0') - version_gte_3_5_or_1_5 = version >= LooseVersion('1.5.0') - version_gte_3_6 = version >= LooseVersion('3.6.0') + version_gte_3_4_or_1_4 = version >= LooseVersion('1.4') + version_gte_3_5_or_1_5 = version >= LooseVersion('1.5') + version_gte_3_6 = version >= LooseVersion('3.6') else: version_gte_3_1_or_1_1 = version >= LooseVersion('3.0.2.905') version_gte_3_1_1_or_1_1_1 = version >= LooseVersion('3.1.1') version_gte_3_2_or_1_2 = version >= LooseVersion('3.1.1.901') version_gte_3_3_or_1_3 = version >= LooseVersion('3.3.0') - version_gte_3_4_or_1_4 = version >= LooseVersion('3.4.0') - version_gte_3_5_or_1_5 = version >= LooseVersion('3.5.0') - version_gte_3_6 = version >= LooseVersion('3.6.0') + version_gte_3_4_or_1_4 = version >= LooseVersion('3.4') + version_gte_3_5_or_1_5 = version >= LooseVersion('3.5') + version_gte_3_6 = version >= LooseVersion('3.6') else: # 'Latest' version is set to True, 'Next' versions set to False version_gte_3_1_or_1_1 = True -- cgit v1.2.3 From 19ba6418249c59feebec9f96c0dafe73e2de3b8b Mon Sep 17 00:00:00 2001 From: ewolinetz Date: Thu, 29 Jun 2017 14:52:22 -0500 Subject: Adding labels for elasticsearch and kibana services --- roles/openshift_logging_elasticsearch/tasks/main.yaml | 10 ++++------ roles/openshift_logging_kibana/tasks/main.yaml | 5 ++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/roles/openshift_logging_elasticsearch/tasks/main.yaml b/roles/openshift_logging_elasticsearch/tasks/main.yaml index d9ac52cb7..68726aa78 100644 --- a/roles/openshift_logging_elasticsearch/tasks/main.yaml +++ b/roles/openshift_logging_elasticsearch/tasks/main.yaml @@ -173,9 +173,8 @@ selector: component: "{{ es_component }}" provider: openshift - # pending #4091 - #labels: - #- logging-infra: 'support' + labels: + logging-infra: 'support' ports: - port: 9300 @@ -187,9 +186,8 @@ selector: component: "{{ es_component }}" provider: openshift - # pending #4091 - #labels: - #- logging-infra: 'support' + labels: + logging-infra: 'support' ports: - port: 9200 targetPort: "restapi" diff --git a/roles/openshift_logging_kibana/tasks/main.yaml b/roles/openshift_logging_kibana/tasks/main.yaml index bae55ffaa..93cb82793 100644 --- a/roles/openshift_logging_kibana/tasks/main.yaml +++ b/roles/openshift_logging_kibana/tasks/main.yaml @@ -89,9 +89,8 @@ selector: component: "{{ kibana_component }}" provider: openshift - # pending #4091 - #labels: - #- logging-infra: 'support' + labels: + logging-infra: 'support' ports: - port: 443 targetPort: "oaproxy" -- cgit v1.2.3 From c343d2a0aa336c5691d03db5bb52b2c8691a1e95 Mon Sep 17 00:00:00 2001 From: Steve Teuber Date: Tue, 27 Jun 2017 09:46:22 +0200 Subject: Fix generate role binding destination for the HOSA service account The task `Generate role binding for the hawkular-openshift-agent service account` use wrong template destination: https://github.com/openshift/openshift-ansible/blob/master/roles/openshift_metrics/tasks/install_metrics.yaml#L47 --- roles/openshift_metrics/tasks/install_hosa.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/openshift_metrics/tasks/install_hosa.yaml b/roles/openshift_metrics/tasks/install_hosa.yaml index cc533a68b..7c9bc26d0 100644 --- a/roles/openshift_metrics/tasks/install_hosa.yaml +++ b/roles/openshift_metrics/tasks/install_hosa.yaml @@ -28,7 +28,7 @@ - name: Generate role binding for the hawkular-openshift-agent service account template: src: rolebinding.j2 - dest: "{{ mktemp.stdout }}/templates/metrics-hawkular-agent-rolebinding.yaml" + dest: "{{ mktemp.stdout }}/templates/metrics-hawkular-openshift-agent-rolebinding.yaml" vars: cluster: True obj_name: hawkular-openshift-agent-rb -- cgit v1.2.3 From ad56eff70f0671f8007c4b477c185a565d766ebe Mon Sep 17 00:00:00 2001 From: ewolinetz Date: Thu, 29 Jun 2017 17:07:29 -0500 Subject: Fixing ops storage options being passed to openshift_logging_elasticsearch role fixing default ops pv selector --- roles/openshift_logging/defaults/main.yml | 2 +- roles/openshift_logging/tasks/install_logging.yaml | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/roles/openshift_logging/defaults/main.yml b/roles/openshift_logging/defaults/main.yml index 9b7767ccd..c243a6e4a 100644 --- a/roles/openshift_logging/defaults/main.yml +++ b/roles/openshift_logging/defaults/main.yml @@ -128,7 +128,7 @@ openshift_logging_es_ops_client_key: /etc/fluent/keys/key openshift_logging_es_ops_cluster_size: "{{ openshift_hosted_logging_elasticsearch_ops_cluster_size | default(1) }}" openshift_logging_es_ops_cpu_limit: null openshift_logging_es_ops_memory_limit: "{{ openshift_hosted_logging_elasticsearch_ops_instance_ram | default('8Gi') }}" -openshift_logging_es_ops_pv_selector: "{{ openshift_hosted_loggingops_storage_labels | default(null) }}" +openshift_logging_es_ops_pv_selector: "{{ openshift_hosted_loggingops_storage_labels | default('') }}" openshift_logging_es_ops_pvc_dynamic: "{{ openshift_hosted_logging_elasticsearch_ops_pvc_dynamic | default(False) }}" openshift_logging_es_ops_pvc_size: "{{ openshift_hosted_logging_elasticsearch_ops_pvc_size | default('') }}" openshift_logging_es_ops_pvc_prefix: "{{ openshift_hosted_logging_elasticsearch_ops_pvc_prefix | default('logging-es-ops') }}" diff --git a/roles/openshift_logging/tasks/install_logging.yaml b/roles/openshift_logging/tasks/install_logging.yaml index 66dc0e096..221a81340 100644 --- a/roles/openshift_logging/tasks/install_logging.yaml +++ b/roles/openshift_logging/tasks/install_logging.yaml @@ -105,20 +105,22 @@ - set_fact: es_ops_indices=[] when: openshift_logging_facts.elasticsearch_ops.deploymentconfigs.keys() | count == 0 +- set_fact: openshift_logging_es_ops_pvc_prefix="logging-es-ops" + when: openshift_logging_es_ops_pvc_prefix == "" - include_role: name: openshift_logging_elasticsearch vars: generated_certs_dir: "{{openshift.common.config_base}}/logging" openshift_logging_elasticsearch_deployment_name: "{{ item.0 }}" - openshift_logging_elasticsearch_pvc_name: "{{ openshift_logging_es_pvc_prefix ~ '-' ~ item.2 if item.1 is none else item.1 }}" + openshift_logging_elasticsearch_pvc_name: "{{ openshift_logging_es_ops_pvc_prefix ~ '-' ~ item.2 if item.1 is none else item.1 }}" openshift_logging_elasticsearch_ops_deployment: true openshift_logging_elasticsearch_replica_count: "{{ openshift_logging_es_ops_cluster_size | int }}" - openshift_logging_elasticsearch_storage_type: "{{ 'pvc' if ( openshift_logging_es_pvc_dynamic | bool or openshift_hosted_logging_storage_kind | default('') == 'nfs') else 'emptydir' }}" - openshift_logging_elasticsearch_pvc_size: "{{ openshift_logging_es_pvc_size }}" - openshift_logging_elasticsearch_pvc_dynamic: "{{ openshift_logging_es_pvc_dynamic }}" - openshift_logging_elasticsearch_pvc_pv_selector: "{{ openshift_logging_es_pv_selector }}" + openshift_logging_elasticsearch_storage_type: "{{ 'pvc' if ( openshift_logging_es_ops_pvc_dynamic | bool or openshift_hosted_logging_storage_kind | default('') == 'nfs') else 'emptydir' }}" + openshift_logging_elasticsearch_pvc_size: "{{ openshift_logging_es_ops_pvc_size }}" + openshift_logging_elasticsearch_pvc_dynamic: "{{ openshift_logging_es_ops_pvc_dynamic }}" + openshift_logging_elasticsearch_pvc_pv_selector: "{{ openshift_logging_es_ops_pv_selector }}" openshift_logging_es_key: "{{ openshift_logging_es_ops_key }}" openshift_logging_es_cert: "{{ openshift_logging_es_ops_cert }}" openshift_logging_es_ca_ext: "{{ openshift_logging_es_ops_ca_ext }}" @@ -139,14 +141,14 @@ name: openshift_logging_elasticsearch vars: generated_certs_dir: "{{openshift.common.config_base}}/logging" - openshift_logging_elasticsearch_pvc_name: "{{ openshift_logging_es_pvc_prefix }}-{{ item | int + openshift_logging_facts.elasticsearch_ops.deploymentconfigs | count - 1 }}" + openshift_logging_elasticsearch_pvc_name: "{{ openshift_logging_es_ops_pvc_prefix }}-{{ item | int + openshift_logging_facts.elasticsearch_ops.deploymentconfigs | count - 1 }}" openshift_logging_elasticsearch_ops_deployment: true openshift_logging_elasticsearch_replica_count: "{{ openshift_logging_es_ops_cluster_size | int }}" - openshift_logging_elasticsearch_storage_type: "{{ 'pvc' if ( openshift_logging_es_pvc_dynamic | bool or openshift_hosted_logging_storage_kind | default('') == 'nfs') else 'emptydir' }}" - openshift_logging_elasticsearch_pvc_size: "{{ openshift_logging_es_pvc_size }}" - openshift_logging_elasticsearch_pvc_dynamic: "{{ openshift_logging_es_pvc_dynamic }}" - openshift_logging_elasticsearch_pvc_pv_selector: "{{ openshift_logging_es_pv_selector }}" + openshift_logging_elasticsearch_storage_type: "{{ 'pvc' if ( openshift_logging_es_ops_pvc_dynamic | bool or openshift_hosted_logging_storage_kind | default('') == 'nfs') else 'emptydir' }}" + openshift_logging_elasticsearch_pvc_size: "{{ openshift_logging_es_ops_pvc_size }}" + openshift_logging_elasticsearch_pvc_dynamic: "{{ openshift_logging_es_ops_pvc_dynamic }}" + openshift_logging_elasticsearch_pvc_pv_selector: "{{ openshift_logging_es_ops_pv_selector }}" openshift_logging_es_key: "{{ openshift_logging_es_ops_key }}" openshift_logging_es_cert: "{{ openshift_logging_es_ops_cert }}" openshift_logging_es_ca_ext: "{{ openshift_logging_es_ops_ca_ext }}" -- cgit v1.2.3 From 312c1d100259b1d3778bedd8db091d6280089aba Mon Sep 17 00:00:00 2001 From: Jenkins CD Merge Bot Date: Fri, 30 Jun 2017 01:33:36 -0400 Subject: Automatic commit of package [openshift-ansible] release [3.6.129-1]. Created by command: /usr/bin/tito tag --accept-auto-changelog --use-version=3.6.129 --- .tito/packages/openshift-ansible | 2 +- openshift-ansible.spec | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.tito/packages/openshift-ansible b/.tito/packages/openshift-ansible index 65e17d2d9..b331c69ef 100644 --- a/.tito/packages/openshift-ansible +++ b/.tito/packages/openshift-ansible @@ -1 +1 @@ -3.6.128-1 ./ +3.6.129-1 ./ diff --git a/openshift-ansible.spec b/openshift-ansible.spec index 97e17412f..3e999a774 100644 --- a/openshift-ansible.spec +++ b/openshift-ansible.spec @@ -9,7 +9,7 @@ %global __requires_exclude ^/usr/bin/ansible-playbook$ Name: openshift-ansible -Version: 3.6.128 +Version: 3.6.129 Release: 1%{?dist} Summary: Openshift and Atomic Enterprise Ansible License: ASL 2.0 @@ -280,6 +280,23 @@ Atomic OpenShift Utilities includes %changelog +* Fri Jun 30 2017 Jenkins CD Merge Bot 3.6.129-1 +- Fix generate role binding destination for the HOSA service account + (steveteuber@users.noreply.github.com) +- Correct version comparisons to ensure proper evaluation (rteague@redhat.com) +- Adding become: false to local_action tasks (ewolinet@redhat.com) +- upgrade: fix name for the etcd system container (gscrivan@redhat.com) +- fix backup and working directory for etcd run as a system container + (jchaloup@redhat.com) +- etcd_migrate: Add /var/usrlocal/bin to path for oadm (smilner@redhat.com) +- etcd_migrate: Add /usr/local/bin to path for oadm (smilner@redhat.com) +- Sync environment variables FLUENTD/MUX_CPU_LIMIT FLUENTD/MUX_MEMORY_LIMIT + with the resource limit values. (nhosoi@redhat.com) +- Update master configuration for named certificates during master cert + redeploy. (abutcher@redhat.com) +- Get rid of openshift_facts dep in rhel_subscribe (sdodson@redhat.com) +- logging: write ES heap dump to persistent storage (jwozniak@redhat.com) + * Thu Jun 29 2017 Jenkins CD Merge Bot 3.6.128-1 - parameterize etcd binary path (fabian@fabianism.us) - attach leases via the first master only and only once (jchaloup@redhat.com) -- cgit v1.2.3 From c7f631b3e233eb477fd5921ddf7ff720142a3a4e Mon Sep 17 00:00:00 2001 From: Jan Chaloupka Date: Fri, 30 Jun 2017 12:19:38 +0200 Subject: run etcd_container with type:spc_t label --- roles/etcd/templates/etcd.docker.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/etcd/templates/etcd.docker.service b/roles/etcd/templates/etcd.docker.service index adeca7a91..d9327f433 100644 --- a/roles/etcd/templates/etcd.docker.service +++ b/roles/etcd/templates/etcd.docker.service @@ -7,7 +7,7 @@ PartOf={{ openshift.docker.service_name }}.service [Service] EnvironmentFile={{ etcd_conf_file }} ExecStartPre=-/usr/bin/docker rm -f {{ etcd_service }} -ExecStart=/usr/bin/docker run --name {{ etcd_service }} --rm -v {{ etcd_data_dir }}:{{ etcd_data_dir }}:z -v {{ etcd_conf_dir }}:{{ etcd_conf_dir }}:ro --env-file={{ etcd_conf_file }} --net=host --entrypoint=/usr/bin/etcd {{ openshift.etcd.etcd_image }} +ExecStart=/usr/bin/docker run --name {{ etcd_service }} --rm -v {{ etcd_data_dir }}:{{ etcd_data_dir }}:z -v {{ etcd_conf_dir }}:{{ etcd_conf_dir }}:ro --env-file={{ etcd_conf_file }} --net=host --security-opt label=type:spc_t --entrypoint=/usr/bin/etcd {{ openshift.etcd.etcd_image }} ExecStop=/usr/bin/docker stop {{ etcd_service }} SyslogIdentifier=etcd_container Restart=always -- cgit v1.2.3 From ce10e598407d94e2b396b2aa9da5b5c33a0f4ee8 Mon Sep 17 00:00:00 2001 From: Jan Chaloupka Date: Fri, 30 Jun 2017 12:19:09 +0200 Subject: evalute etcd backup directory name only once --- roles/etcd_common/tasks/backup.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/roles/etcd_common/tasks/backup.yml b/roles/etcd_common/tasks/backup.yml index 2384eeb58..1a0b857f1 100644 --- a/roles/etcd_common/tasks/backup.yml +++ b/roles/etcd_common/tasks/backup.yml @@ -1,4 +1,10 @@ --- +# set the etcd backup directory name here in case the tag or sufix consists of dynamic value that changes over time +# e.g. openshift-backup-{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }} value will change every second so if the date changes +# right after setting l_etcd_incontainer_backup_dir and before l_etcd_backup_dir facts, the backup directory name is different +- set_fact: + l_backup_dir_name: "openshift-backup-{{ r_etcd_common_backup_tag }}{{ r_etcd_common_backup_sufix_name }}" + - set_fact: l_etcd_data_dir: "{{ etcd_data_dir }}{{ '/etcd.etcd' if r_etcd_common_etcd_runtime == 'runc' else '' }}" @@ -6,10 +12,10 @@ l_etcd_incontainer_data_dir: "{{ etcd_data_dir }}" - set_fact: - l_etcd_incontainer_backup_dir: "{{ l_etcd_incontainer_data_dir }}/openshift-backup-{{ r_etcd_common_backup_tag }}{{ r_etcd_common_backup_sufix_name }}" + l_etcd_incontainer_backup_dir: "{{ l_etcd_incontainer_data_dir }}/{{ l_backup_dir_name }}" - set_fact: - l_etcd_backup_dir: "{{ l_etcd_data_dir }}/openshift-backup-{{ r_etcd_common_backup_tag }}{{ r_etcd_common_backup_sufix_name }}" + l_etcd_backup_dir: "{{ l_etcd_data_dir }}/{{ l_backup_dir_name }}" # TODO: replace shell module with command and update later checks - name: Check available disk space for etcd backup -- cgit v1.2.3 From 4d3574957508c257e12d9ba8ec8de48ed9789eb9 Mon Sep 17 00:00:00 2001 From: Luke Meyer Date: Fri, 30 Jun 2017 10:19:50 -0400 Subject: docker_image_availability: fix containerized etcd fixes bug 1466622 - docker_image_availability check on etcd host failed for 'openshift_image_tag' is undefined --- .../openshift_checks/docker_image_availability.py | 3 ++- .../test/docker_image_availability_test.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/roles/openshift_health_checker/openshift_checks/docker_image_availability.py b/roles/openshift_health_checker/openshift_checks/docker_image_availability.py index 26bf4c09b..bde81ad2c 100644 --- a/roles/openshift_health_checker/openshift_checks/docker_image_availability.py +++ b/roles/openshift_health_checker/openshift_checks/docker_image_availability.py @@ -94,7 +94,8 @@ class DockerImageAvailability(DockerHostMixin, OpenShiftCheck): required = set() deployment_type = get_var(task_vars, "openshift_deployment_type") host_groups = get_var(task_vars, "group_names") - image_tag = get_var(task_vars, "openshift_image_tag") + # containerized etcd may not have openshift_image_tag, see bz 1466622 + image_tag = get_var(task_vars, "openshift_image_tag", default="latest") image_info = DEPLOYMENT_IMAGE_INFO[deployment_type] if not image_info: return required diff --git a/roles/openshift_health_checker/test/docker_image_availability_test.py b/roles/openshift_health_checker/test/docker_image_availability_test.py index 0a7c0f8d3..3b9e097fb 100644 --- a/roles/openshift_health_checker/test/docker_image_availability_test.py +++ b/roles/openshift_health_checker/test/docker_image_availability_test.py @@ -259,3 +259,17 @@ def test_required_images(deployment_type, is_containerized, groups, oreg_url, ex ) assert expected == DockerImageAvailability("DUMMY").required_images(task_vars) + + +def test_containerized_etcd(): + task_vars = dict( + openshift=dict( + common=dict( + is_containerized=True, + ), + ), + openshift_deployment_type="origin", + group_names=['etcd'], + ) + expected = set(['registry.access.redhat.com/rhel7/etcd']) + assert expected == DockerImageAvailability("DUMMY").required_images(task_vars) -- cgit v1.2.3 From 1b81e5432b77218230bfeb6152dadd0ff0933d2f Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 30 Jun 2017 11:18:06 -0400 Subject: Bump xPaas v1.4.0 for v3.6 --- roles/openshift_examples/examples-sync.sh | 2 +- .../v3.6/xpaas-streams/jboss-image-streams.json | 403 +++++++++-- .../examples/v3.6/xpaas-templates/amq62-basic.json | 21 +- .../v3.6/xpaas-templates/amq62-persistent-ssl.json | 30 +- .../v3.6/xpaas-templates/amq62-persistent.json | 25 +- .../examples/v3.6/xpaas-templates/amq62-ssl.json | 26 +- .../v3.6/xpaas-templates/datagrid65-basic.json | 50 +- .../v3.6/xpaas-templates/datagrid65-https.json | 59 +- .../datagrid65-mysql-persistent.json | 93 ++- .../v3.6/xpaas-templates/datagrid65-mysql.json | 92 ++- .../datagrid65-postgresql-persistent.json | 84 ++- .../xpaas-templates/datagrid65-postgresql.json | 83 ++- .../v3.6/xpaas-templates/datavirt63-basic-s2i.json | 73 +- .../datavirt63-extensions-support-s2i.json | 63 +- .../xpaas-templates/datavirt63-secure-s2i.json | 308 +++++++- .../xpaas-templates/decisionserver62-amq-s2i.json | 40 +- .../decisionserver62-basic-s2i.json | 20 +- .../decisionserver62-https-s2i.json | 27 +- .../xpaas-templates/decisionserver63-amq-s2i.json | 66 +- .../decisionserver63-basic-s2i.json | 45 +- .../decisionserver63-https-s2i.json | 52 +- .../xpaas-templates/eap64-amq-persistent-s2i.json | 75 +- .../v3.6/xpaas-templates/eap64-amq-s2i.json | 71 +- .../v3.6/xpaas-templates/eap64-basic-s2i.json | 44 +- .../v3.6/xpaas-templates/eap64-https-s2i.json | 55 +- .../eap64-mongodb-persistent-s2i.json | 86 ++- .../v3.6/xpaas-templates/eap64-mongodb-s2i.json | 85 ++- .../eap64-mysql-persistent-s2i.json | 87 ++- .../v3.6/xpaas-templates/eap64-mysql-s2i.json | 86 ++- .../eap64-postgresql-persistent-s2i.json | 84 ++- .../v3.6/xpaas-templates/eap64-postgresql-s2i.json | 83 ++- .../v3.6/xpaas-templates/eap64-sso-s2i.json | 72 +- .../xpaas-templates/eap64-third-party-db-s2i.json | 646 +++++++++++++++++ .../xpaas-templates/eap70-amq-persistent-s2i.json | 75 +- .../v3.6/xpaas-templates/eap70-amq-s2i.json | 71 +- .../v3.6/xpaas-templates/eap70-basic-s2i.json | 44 +- .../v3.6/xpaas-templates/eap70-https-s2i.json | 55 +- .../eap70-mongodb-persistent-s2i.json | 86 ++- .../v3.6/xpaas-templates/eap70-mongodb-s2i.json | 85 ++- .../eap70-mysql-persistent-s2i.json | 87 ++- .../v3.6/xpaas-templates/eap70-mysql-s2i.json | 86 ++- .../eap70-postgresql-persistent-s2i.json | 84 ++- .../v3.6/xpaas-templates/eap70-postgresql-s2i.json | 83 ++- .../v3.6/xpaas-templates/eap70-sso-s2i.json | 74 +- .../xpaas-templates/eap70-third-party-db-s2i.json | 657 +++++++++++++++++ .../xpaas-templates/jws30-tomcat7-basic-s2i.json | 43 +- .../xpaas-templates/jws30-tomcat7-https-s2i.json | 48 +- .../jws30-tomcat7-mongodb-persistent-s2i.json | 77 +- .../xpaas-templates/jws30-tomcat7-mongodb-s2i.json | 76 +- .../jws30-tomcat7-mysql-persistent-s2i.json | 78 +- .../xpaas-templates/jws30-tomcat7-mysql-s2i.json | 77 +- .../jws30-tomcat7-postgresql-persistent-s2i.json | 75 +- .../jws30-tomcat7-postgresql-s2i.json | 74 +- .../xpaas-templates/jws30-tomcat8-basic-s2i.json | 43 +- .../xpaas-templates/jws30-tomcat8-https-s2i.json | 48 +- .../jws30-tomcat8-mongodb-persistent-s2i.json | 77 +- .../xpaas-templates/jws30-tomcat8-mongodb-s2i.json | 76 +- .../jws30-tomcat8-mysql-persistent-s2i.json | 78 +- .../xpaas-templates/jws30-tomcat8-mysql-s2i.json | 77 +- .../jws30-tomcat8-postgresql-persistent-s2i.json | 75 +- .../jws30-tomcat8-postgresql-s2i.json | 74 +- .../xpaas-templates/openjdk18-web-basic-s2i.json | 7 +- .../processserver63-amq-mysql-persistent-s2i.json | 93 ++- .../processserver63-amq-mysql-s2i.json | 91 ++- ...cessserver63-amq-postgresql-persistent-s2i.json | 90 ++- .../processserver63-amq-postgresql-s2i.json | 88 ++- .../xpaas-templates/processserver63-basic-s2i.json | 46 +- .../processserver63-mysql-persistent-s2i.json | 82 ++- .../xpaas-templates/processserver63-mysql-s2i.json | 81 ++- .../processserver63-postgresql-persistent-s2i.json | 79 +- .../processserver63-postgresql-s2i.json | 78 +- .../examples/v3.6/xpaas-templates/sso70-https.json | 50 +- .../xpaas-templates/sso70-mysql-persistent.json | 75 +- .../examples/v3.6/xpaas-templates/sso70-mysql.json | 78 +- .../sso70-postgresql-persistent.json | 72 +- .../v3.6/xpaas-templates/sso70-postgresql.json | 71 +- .../examples/v3.6/xpaas-templates/sso71-https.json | 544 ++++++++++++++ .../xpaas-templates/sso71-mysql-persistent.json | 799 +++++++++++++++++++++ .../examples/v3.6/xpaas-templates/sso71-mysql.json | 767 ++++++++++++++++++++ .../sso71-postgresql-persistent.json | 773 ++++++++++++++++++++ .../v3.6/xpaas-templates/sso71-postgresql.json | 741 +++++++++++++++++++ 81 files changed, 9870 insertions(+), 554 deletions(-) create mode 100644 roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-third-party-db-s2i.json create mode 100644 roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-third-party-db-s2i.json create mode 100644 roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-https.json create mode 100644 roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-mysql-persistent.json create mode 100644 roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-mysql.json create mode 100644 roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-postgresql-persistent.json create mode 100644 roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-postgresql.json diff --git a/roles/openshift_examples/examples-sync.sh b/roles/openshift_examples/examples-sync.sh index f3f270c40..da9ecc41d 100755 --- a/roles/openshift_examples/examples-sync.sh +++ b/roles/openshift_examples/examples-sync.sh @@ -5,7 +5,7 @@ # # This script should be run from openshift-ansible/roles/openshift_examples -XPAAS_VERSION=ose-v1.3.6 +XPAAS_VERSION=ose-v1.4.0 ORIGIN_VERSION=${1:-v3.6} RHAMP_TAG=2.0.0.GA EXAMPLES_BASE=$(pwd)/files/examples/${ORIGIN_VERSION} diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-streams/jboss-image-streams.json b/roles/openshift_examples/files/examples/v3.6/xpaas-streams/jboss-image-streams.json index 049f3f884..f77c1080c 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-streams/jboss-image-streams.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-streams/jboss-image-streams.json @@ -12,7 +12,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-webserver30-tomcat7-openshift" + "name": "jboss-webserver30-tomcat7-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat7-openshift", @@ -23,10 +26,11 @@ "description": "JBoss Web Server 3.0 Tomcat 7 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat7,java,jboss,xpaas", - "supports":"tomcat7:3.0,tomcat:7,java:8,xpaas:1.1", + "supports": "tomcat7:3.0,tomcat:7,java:8,xpaas:1.1", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.1" + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7" } }, { @@ -35,10 +39,23 @@ "description": "JBoss Web Server 3.0 Tomcat 7 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat7,java,jboss,xpaas", - "supports":"tomcat7:3.0,tomcat:7,java:8,xpaas:1.2", + "supports": "tomcat7:3.0,tomcat:7,java:8,xpaas:1.2", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Web Server 3.0 Tomcat 7 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,tomcat,tomcat7,java,jboss,xpaas", + "supports":"tomcat7:3.0,tomcat:7,java:8,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.3" } } ] @@ -48,7 +65,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-webserver30-tomcat8-openshift" + "name": "jboss-webserver30-tomcat8-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat8-openshift", @@ -59,10 +79,11 @@ "description": "JBoss Web Server 3.0 Tomcat 8 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat8,java,jboss,xpaas", - "supports":"tomcat8:3.0,tomcat:8,java:8,xpaas:1.1", + "supports": "tomcat8:3.0,tomcat:8,java:8,xpaas:1.1", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.1" + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8" } }, { @@ -71,10 +92,23 @@ "description": "JBoss Web Server 3.0 Tomcat 8 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat8,java,jboss,xpaas", - "supports":"tomcat8:3.0,tomcat:8,java:8,xpaas:1.2", + "supports": "tomcat8:3.0,tomcat:8,java:8,xpaas:1.2", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Web Server 3.0 Tomcat 8 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,tomcat,tomcat8,java,jboss,xpaas", + "supports":"tomcat8:3.0,tomcat:8,java:8,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.3" } } ] @@ -84,7 +118,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-eap64-openshift" + "name": "jboss-eap64-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-eap-6/eap64-openshift", @@ -95,11 +132,12 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.1", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.1", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.1" + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" } }, { @@ -108,11 +146,12 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.2", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.2", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" } }, { @@ -121,11 +160,12 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.3", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.3", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.3" + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" } }, { @@ -134,11 +174,25 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.4", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.4" + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" + } + }, + { + "name": "1.5", + "annotations": { + "description": "JBoss EAP 6.4 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,eap,javaee,java,jboss,xpaas", + "supports":"eap:6.4,javaee:6,java:8,xpaas:1.5", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "6.4.x", + "version": "1.5" } } ] @@ -148,7 +202,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-eap70-openshift" + "name": "jboss-eap70-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-eap-7/eap70-openshift", @@ -159,11 +216,12 @@ "description": "JBoss EAP 7.0 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:7.0,javaee:7,java:8,xpaas:1.3", + "supports": "eap:7.0,javaee:7,java:8,xpaas:1.3", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "7.0.0.GA", - "version": "1.3" + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" } }, { @@ -172,11 +230,25 @@ "description": "JBoss EAP 7.0 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:7.0,javaee:7,java:8,xpaas:1.4", + "supports": "eap:7.0,javaee:7,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "7.0.0.GA", - "version": "1.4" + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + } + }, + { + "name": "1.5", + "annotations": { + "description": "JBoss EAP 7.0 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,eap,javaee,java,jboss,xpaas", + "supports":"eap:7.0,javaee:7,java:8,xpaas:1.5", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.0.0.GA", + "version": "1.5" } } ] @@ -186,7 +258,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-decisionserver62-openshift" + "name": "jboss-decisionserver62-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-decisionserver-6/decisionserver62-openshift", @@ -196,12 +271,13 @@ "annotations": { "description": "Red Hat JBoss BRMS 6.2 decision server S2I images.", "iconClass": "icon-jboss", - "tags": "builder,decisionserver,java,xpaas", - "supports":"decisionserver:6.2,java:8,xpaas:1.2", + "tags": "builder,decisionserver,xpaas", + "supports": "decisionserver:6.2,xpaas:1.2", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "decisionserver/hellorules", "sampleRef": "1.2", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server" } } ] @@ -211,22 +287,39 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-decisionserver63-openshift" + "name": "jboss-decisionserver63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-decisionserver-6/decisionserver63-openshift", "tags": [ { "name": "1.3", + "annotations": { + "description": "Red Hat JBoss BRMS 6.3 decision server S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,decisionserver,xpaas", + "supports": "decisionserver:6.3,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "decisionserver/hellorules", + "sampleRef": "1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server" + } + }, + { + "name": "1.4", "annotations": { "description": "Red Hat JBoss BRMS 6.3 decision server S2I images.", "iconClass": "icon-jboss", "tags": "builder,decisionserver,java,xpaas", - "supports":"decisionserver:6.3,java:8,xpaas:1.3", + "supports":"decisionserver:6.3,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "decisionserver/hellorules", "sampleRef": "1.3", - "version": "1.3" + "version": "1.4" } } ] @@ -236,22 +329,39 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-processserver63-openshift" + "name": "jboss-processserver63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-processserver-6/processserver63-openshift", "tags": [ { "name": "1.3", + "annotations": { + "description": "Red Hat JBoss BPM Suite 6.3 intelligent process server S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,processserver,xpaas", + "supports": "processserver:6.3,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "processserver/library", + "sampleRef": "1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server" + } + }, + { + "name": "1.4", "annotations": { "description": "Red Hat JBoss BPM Suite 6.3 intelligent process server S2I images.", "iconClass": "icon-jboss", "tags": "builder,processserver,java,xpaas", - "supports":"processserver:6.3,java:8,xpaas:1.3", + "supports":"processserver:6.3,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "processserver/library", "sampleRef": "1.3", - "version": "1.3" + "version": "1.4" } } ] @@ -261,7 +371,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-datagrid65-openshift" + "name": "jboss-datagrid65-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-datagrid-6/datagrid65-openshift", @@ -271,9 +384,31 @@ "annotations": { "description": "JBoss Data Grid 6.5 S2I images.", "iconClass": "icon-jboss", - "tags": "datagrid,java,jboss,xpaas", - "supports":"datagrid:6.5,java:8,xpaas:1.2", - "version": "1.2" + "tags": "datagrid,jboss,xpaas", + "supports": "datagrid:6.5,xpaas:1.2", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-jboss", + "tags": "datagrid,jboss,xpaas", + "supports": "datagrid:6.5,xpaas:1.4", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + } + }, + { + "name": "1.4", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-jboss", + "tags": "datagrid,jboss,xpaas", + "supports":"datagrid:6.5,xpaas:1.4", + "version": "1.4" } } ] @@ -283,7 +418,35 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-datavirt63-openshift" + "name": "jboss-datagrid65-client-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 Client Modules for EAP" + } + }, + "spec": { + "dockerImageRepository": "registry.access.redhat.com/jboss-datagrid-6/datagrid65-client-openshift", + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Data Grid 6.5 Client Modules for EAP.", + "iconClass": "icon-jboss", + "tags": "client,jboss,xpaas", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 Client Modules for EAP" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datavirt63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-datavirt-6/datavirt63-openshift", @@ -293,9 +456,56 @@ "annotations": { "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", "iconClass": "icon-jboss", - "tags": "datavirt,java,jboss,xpaas", - "supports":"datavirt:6.3,java:8,xpaas:1.4", - "version": "1.0" + "tags": "datavirt,jboss,xpaas", + "supports": "datavirt:6.3,xpaas:1.4", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-jboss", + "tags": "datavirt,jboss,xpaas", + "supports": "datavirt:6.3,xpaas:1.4", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-jboss", + "tags": "datavirt,jboss,xpaas", + "supports":"datavirt:6.3,xpaas:1.4", + "version": "1.2" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datavirt63-driver-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP" + } + }, + "spec": { + "dockerImageRepository": "registry.access.redhat.com/jboss-datavirt-6/datavirt63-driver-openshift", + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP.", + "iconClass": "icon-jboss", + "tags": "client,jboss,xpaas", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP" } } ] @@ -305,7 +515,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-amq-62" + "name": "jboss-amq-62", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-amq-6/amq62-openshift", @@ -316,8 +529,9 @@ "description": "JBoss A-MQ 6.2 broker image.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "supports":"amq:6.2,messaging,xpaas:1.1", - "version": "1.1" + "supports": "amq:6.2,messaging,xpaas:1.1", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" } }, { @@ -326,8 +540,9 @@ "description": "JBoss A-MQ 6.2 broker image.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "supports":"amq:6.2,messaging,xpaas:1.2", - "version": "1.2" + "supports": "amq:6.2,messaging,xpaas:1.2", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" } }, { @@ -336,8 +551,19 @@ "description": "JBoss A-MQ 6.2 broker image.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "supports":"amq:6.2,messaging,xpaas:1.3", - "version": "1.3" + "supports": "amq:6.2,messaging,xpaas:1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + } + }, + { + "name": "1.4", + "annotations": { + "description": "JBoss A-MQ 6.2 broker image.", + "iconClass": "icon-jboss", + "tags": "messaging,amq,jboss,xpaas", + "supports":"amq:6.2,messaging,xpaas:1.4", + "version": "1.4" } } ] @@ -348,8 +574,9 @@ "apiVersion": "v1", "metadata": { "name": "redhat-sso70-openshift", - "annotations": { - "description": "Red Hat SSO 7.0" + "annotations": { + "description": "Red Hat SSO 7.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" } }, "spec": { @@ -361,8 +588,20 @@ "description": "Red Hat SSO 7.0", "iconClass": "icon-jboss", "tags": "sso,keycloak,redhat", - "supports":"sso:7.0,xpaas:1.3", - "version": "1.3" + "supports": "sso:7.0,xpaas:1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" + } + }, + { + "name": "1.4", + "annotations": { + "description": "Red Hat SSO 7.0", + "iconClass": "icon-jboss", + "tags": "sso,keycloak,redhat", + "supports": "sso:7.0,xpaas:1.4", + "version": "1.4", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" } } ] @@ -372,7 +611,48 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "redhat-openjdk18-openshift" + "name": "redhat-sso71-openshift", + "annotations": { + "description": "Red Hat SSO 7.1", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + } + }, + "spec": { + "dockerImageRepository": "registry.access.redhat.com/redhat-sso-7/sso71-openshift", + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat SSO 7.1", + "iconClass": "icon-jboss", + "tags": "sso,keycloak,redhat", + "supports": "sso:7.1,xpaas:1.4", + "version": "1.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat SSO 7.1", + "iconClass": "icon-jboss", + "tags": "sso,keycloak,redhat", + "supports": "sso:7.1,xpaas:1.4", + "version": "1.1", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redhat-openjdk18-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift", @@ -384,11 +664,24 @@ "description": "Build and run Java applications using Maven and OpenJDK 8.", "iconClass": "icon-jboss", "tags": "builder,java,xpaas,openjdk", - "supports":"java:8,xpaas:1.0", + "supports": "java:8,xpaas:1.0", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", "sampleContextDir": "undertow-servlet", "version": "1.0" } + }, + { + "name": "1.1", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-jboss", + "tags": "builder,java,xpaas,openjdk", + "supports": "java:8,xpaas:1.4", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "1.1" + } } ] } diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-basic.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-basic.json index ab35afead..af20b373a 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-basic.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-basic.json @@ -6,46 +6,54 @@ "description": "Application template for JBoss A-MQ brokers. These can be deployed as standalone or in a mesh. This template doesn't feature SSL support.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Ephemeral, no SSL)" }, "name": "amq62-basic" }, "labels": { "template": "amq62-basic", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -53,6 +61,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,18 +69,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -171,7 +183,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire port." + "description": "The broker's OpenWire port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"}]" } } }, @@ -202,7 +215,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-persistent-ssl.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-persistent-ssl.json index c12f06dec..5acdbfabf 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-persistent-ssl.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-persistent-ssl.json @@ -6,58 +6,68 @@ "description": "Application template for JBoss A-MQ brokers. These are deployed as standalone and use persistent storage for saving messages. This template supports SSL and requires usage of OpenShift secrets.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Persistent with SSL)" }, "name": "amq62-persistent-ssl" }, "labels": { "template": "amq62-persistent-ssl", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new persistent messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"amq-service-account\" service account and a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -65,6 +75,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -72,48 +83,56 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "Secret Name", "description": "Name of a secret containing SSL related files", "name": "AMQ_SECRET", "value": "amq-app-secret", "required": true }, { + "displayName": "Trust Store Filename", "description": "SSL trust store filename", "name": "AMQ_TRUSTSTORE", "value": "broker.ts", "required": true }, { + "displayName": "Trust Store Password", "description": "SSL trust store password", "name": "AMQ_TRUSTSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Keystore Filename", "description": "SSL key store filename", "name": "AMQ_KEYSTORE", "value": "broker.ks", "required": true }, { + "displayName": "A-MQ Keystore Password", "description": "Password for accessing SSL keystore", "name": "AMQ_KEYSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -309,7 +328,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire (SSL) port." + "description": "The broker's OpenWire (SSL) port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp-ssl\", \"kind\": \"Service\"}]" } } }, @@ -340,7 +360,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-persistent.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-persistent.json index 897ce0395..b8089cd6d 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-persistent.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-persistent.json @@ -6,58 +6,68 @@ "description": "Application template for JBoss A-MQ brokers. These can be deployed as standalone and use persistent storage for saving messages. This template doesn't feature SSL support.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Persistent, no SSL)" }, "name": "amq62-persistent" }, "labels": { "template": "amq62-persistent", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new persistent messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -65,6 +75,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -72,18 +83,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -183,7 +197,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire port." + "description": "The broker's OpenWire port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"}]" } } }, @@ -214,7 +229,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-ssl.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-ssl.json index 97d110286..b52fdbfb0 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-ssl.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/amq62-ssl.json @@ -6,46 +6,54 @@ "description": "Application template for JBoss A-MQ brokers. These can be deployed as standalone or in a mesh. This template supports SSL and requires usage of OpenShift secrets.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Ephemeral with SSL)" }, "name": "amq62-ssl" }, "labels": { "template": "amq62-ssl", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"amq-service-account\" service account and a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. SSL variants of these protocols will be configured automaticaly.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -53,6 +61,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,48 +69,56 @@ "required": false }, { + "displayName": "Secret Name", "description": "Name of a secret containing SSL related files", "name": "AMQ_SECRET", "value": "amq-app-secret", "required": true }, { + "displayName": "Trust Store Filename", "description": "SSL trust store filename", "name": "AMQ_TRUSTSTORE", "value": "broker.ts", "required": true }, { + "displayName": "Trust Store Password", "description": "SSL trust store password", "name": "AMQ_TRUSTSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Keystore Filename", "description": "SSL key store filename", "name": "AMQ_KEYSTORE", "value": "broker.ks", "required": true }, { + "displayName": "A-MQ Keystore Password", "description": "Password for accessing SSL keystore", "name": "AMQ_KEYSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -297,7 +314,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire (SSL) port." + "description": "The broker's OpenWire (SSL) port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp-ssl\", \"kind\": \"Service\"}]" } } }, @@ -328,7 +346,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-basic.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-basic.json index 56e76016f..32433bef0 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-basic.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-basic.json @@ -6,76 +6,103 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 applications.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 (Ephemeral, no https)" }, "name": "datagrid65-basic" }, "labels": { "template": "datagrid65-basic", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -200,7 +227,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -267,9 +294,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -301,6 +333,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-https.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-https.json index 639ac2e11..e6f020400 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-https.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-https.json @@ -6,130 +6,166 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 applications.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 (Ephemeral with https)" }, "name": "datagrid65-https" }, "labels": { "template": "datagrid65-https", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -301,7 +337,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -386,9 +422,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -436,6 +477,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-mysql-persistent.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-mysql-persistent.json index 22ca3f0a0..ff57a7936 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-mysql-persistent.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and MySQL applications with persistent storage.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + MySQL (Persistent with https)" }, "name": "datagrid65-mysql-persistent" }, "labels": { "template": "datagrid65-mysql-persistent", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using MySQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:/jboss/datasources/mysql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,117 +111,158 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -230,7 +286,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -254,7 +311,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -278,7 +336,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Memcached service for clustered applications." + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -302,7 +361,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Hot Rod service for clustered applications." + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -397,7 +457,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -482,9 +542,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -584,6 +649,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -669,7 +742,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-mysql.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-mysql.json index e1a585d24..44902de25 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-mysql.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-mysql.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and MySQL applications.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + MySQL (Ephemeral with https)" }, "name": "datagrid65-mysql" }, "labels": { "template": "datagrid65-mysql", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using MySQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:/jboss/datasources/mysql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,111 +111,151 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -224,7 +279,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -248,7 +304,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +329,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Memcached service for clustered applications." + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -296,7 +354,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Hot Rod service for clustered applications." + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -391,7 +450,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -476,9 +535,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -578,6 +642,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -663,7 +735,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-postgresql-persistent.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-postgresql-persistent.json index 12720eb19..6b90e1370 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-postgresql-persistent.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and PostgreSQL applications with persistent storage.", "tags": "datagrid,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + PostgreSQL (Persistent with https)" }, "name": "datagrid65-postgresql-persistent" }, "labels": { "template": "datagrid65-postgresql-persistent", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using PostgreSQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/postgresql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,102 +111,140 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -215,7 +268,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -239,7 +293,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -382,7 +437,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -467,9 +522,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -569,6 +629,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -654,7 +722,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-postgresql.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-postgresql.json index da8015fb0..ae36376db 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-postgresql.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datagrid65-postgresql.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and PostgreSQL applications built using.", "tags": "datagrid,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + PostgreSQL (Ephemeral with https)" }, "name": "datagrid65-postgresql" }, "labels": { "template": "datagrid65-postgresql", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using PostgreSQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/postgresql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,96 +111,133 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configurd for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -209,7 +261,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -233,7 +286,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -376,7 +430,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -461,9 +515,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -563,6 +622,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -648,7 +715,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-basic-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-basic-s2i.json index 7d64dac98..ea2f13742 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-basic-s2i.json @@ -6,7 +6,8 @@ "iconClass": "icon-jboss", "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I.", "tags": "jdv,datavirt,jboss,xpaas", - "version": "1.4.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3 (no SSL)" }, "name": "datavirt63-basic-s2i" }, @@ -60,6 +61,7 @@ }, { "description": "The name of the service account to use for the deployment. The service account should be configured to allow usage of the secret specified by CONFIGURATION_NAME.", + "displayName": "Service Account Name", "name": "SERVICE_ACCOUNT_NAME", "value": "datavirt-service-account", "required": true @@ -133,6 +135,27 @@ "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -215,7 +238,22 @@ "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir": "${CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.0" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + } + ] }, "strategy": { "type": "Source", @@ -224,8 +262,26 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datavirt63-openshift:1.0" - } + "name": "jboss-datavirt63-openshift:1.2" + }, + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ] } }, "output": { @@ -251,6 +307,15 @@ "type": "ImageChange", "imageChange": {} }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.0" + } + } + }, { "type": "ConfigChange" } diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-extensions-support-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-extensions-support-s2i.json index 1e7c03b99..22b579ecc 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-extensions-support-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-extensions-support-s2i.json @@ -6,7 +6,8 @@ "iconClass": "icon-jboss", "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I. Includes support for installing extensions (e.g. third-party DB drivers) and the ability to configure certificates for serving secure content.", "tags": "jdv,datavirt,jboss,xpaas", - "version": "1.4.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3 (with SSL and Extensions)" }, "name": "datavirt63-extensions-support-s2i" }, @@ -102,6 +103,7 @@ }, { "description": "The name of the service account to use for the deployment. The service account should be configured to allow usage of the secret(s) specified by CONFIGURATION_NAME, HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "displayName": "Service Account Name", "name": "SERVICE_ACCOUNT_NAME", "value": "datavirt-service-account", "required": true @@ -238,6 +240,27 @@ "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -443,6 +466,19 @@ }, "contextDir": "${CONTEXT_DIR}", "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.0" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + }, { "from": { "kind": "ImageStreamTag", @@ -464,12 +500,24 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datavirt63-openshift:1.0" + "name": "jboss-datavirt63-openshift:1.2" }, "env": [ { "name": "CUSTOM_INSTALL_DIRECTORIES", "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ] } @@ -506,6 +554,15 @@ } } }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.0" + } + } + }, { "type": "ConfigChange" } @@ -713,7 +770,7 @@ }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE", - "value": "/etc/datavirt-secret-volume/${HTTPS_KEYSTORE}" + "value": "${HTTPS_KEYSTORE}" }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE_TYPE", diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-secure-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-secure-s2i.json index 07f926ff3..9392c20a6 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-secure-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/datavirt63-secure-s2i.json @@ -6,7 +6,8 @@ "iconClass": "icon-jboss", "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I. Includes ability to configure certificates for serving secure content.", "tags": "jdv,datavirt,jboss,xpaas", - "version": "1.4.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3 (with SSL)" }, "name": "datavirt63-secure-s2i" }, @@ -74,6 +75,7 @@ }, { "description": "The name of the service account to use for the deployment. The service account should be configured to allow usage of the secret(s) specified by CONFIGURATION_NAME, HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "displayName": "Service Account Name", "name": "SERVICE_ACCOUNT_NAME", "value": "datavirt-service-account", "required": true @@ -210,6 +212,168 @@ "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", + "displayName": "SSO Server URL", + "name": "SSO_URL", + "value": "", + "required": false + }, + { + "description": "The URL for the interal SSO service, where secure-sso is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "displayName": "SSO Server Service URL", + "name": "SSO_SERVICE_URL", + "value": "", + "required": false + }, + { + "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", + "displayName": "SSO Realm", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", + "displayName": "SSO Username", + "name": "SSO_USERNAME", + "value": "", + "required": false + }, + { + "description": "The password for the SSO service user.", + "displayName": "SSO User's Password", + "name": "SSO_PASSWORD", + "value": "", + "required": false + }, + { + "description": "SSO Realm Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability. This can be retrieved from the SSO server, for the specified realm.", + "displayName": "SSO Realm Public Key", + "name": "SSO_PUBLIC_KEY", + "value": "", + "required": false + }, + { + "description": "SSO Client Access Type. true or false", + "displayName": "SSO Bearer Only", + "name": "SSO_BEARER_ONLY", + "value": "", + "required": false + }, + { + "description": "The name of the secret containing the keystore file", + "displayName": "SSO SAML Keystore Secret", + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "datavirt-app-secret", + "required": false + }, + { + "description": "The name of the keystore file within the secret", + "displayName": "SSO SAML Keystore File", + "name": "SSO_SAML_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "description": "The name associated with the server certificate", + "displayName": "SSO SAML Certificate Alias", + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "", + "required": false + }, + { + "description": "The password for the keystore and certificate", + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "displayName": "SSO SAML Keystore Password", + "value": "", + "required": false + }, + { + "description": "The SSO Client Secret for Confidential Access", + "name": "SSO_SECRET", + "displayName": "SSO Client Secret", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "description": "Enable CORS for SSO applications. true or false", + "name": "SSO_ENABLE_CORS", + "displayName": "SSO Enable CORS", + "value": "false", + "required": false + }, + { + "description": "SSO logout page for SAML applications", + "name": "SSO_SAML_LOGOUT_PAGE", + "displayName": "SSO SAML Logout Page", + "value": "/", + "required": false + }, + { + "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "displayName": "SSO Disable SSL Certificate Validation", + "value": "true", + "required": false + }, + { + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "displayName": "SSO Truststore File", + "value": "", + "required": false + }, + { + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "displayName": "SSO Truststore Password", + "value": "", + "required": false + }, + { + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "displayName": "SSO Truststore Secret", + "value": "datavirt-app-secret", + "required": false + }, + { + "description": "Comma delimited list of deployments that shoulds be exploded and enabled for SSO OpenIDConnect via auth-method", + "name": "SSO_OPENIDCONNECT_DEPLOYMENTS", + "displayName": "SSO OpenIDConnect Deployments", + "value": "", + "required": false + }, + { + "description": "Comma delimited list of deployments that shoulds be exploded and enabled for SSO SAML via auth-method", + "name": "SSO_SAML_DEPLOYMENTS", + "displayName": "SSO SAML Deployments", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -354,7 +518,22 @@ "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir": "${CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.0" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + } + ] }, "strategy": { "type": "Source", @@ -363,8 +542,26 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datavirt63-openshift:1.0" - } + "name": "jboss-datavirt63-openshift:1.2" + }, + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ] } }, "output": { @@ -390,6 +587,15 @@ "type": "ImageChange", "imageChange": {} }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.0" + } + } + }, { "type": "ConfigChange" } @@ -597,7 +803,7 @@ }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE", - "value": "/etc/datavirt-secret-volume/${HTTPS_KEYSTORE}" + "value": "${HTTPS_KEYSTORE}" }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE_TYPE", @@ -610,6 +816,98 @@ { "name": "DATAVIRT_TRANSPORT_KEYSTORE_PASSWORD", "value": "${HTTPS_PASSWORD}" + }, + { + "name": "SSO_URL", + "value": "${SSO_URL}" + }, + { + "name": "SSO_SERVICE_URL", + "value": "${SSO_SERVICE_URL}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_USERNAME", + "value": "${SSO_USERNAME}" + }, + { + "name": "SSO_PASSWORD", + "value": "${SSO_PASSWORD}" + }, + { + "name": "SSO_PUBLIC_KEY", + "value": "${SSO_PUBLIC_KEY}" + }, + { + "name": "SSO_BEARER_ONLY", + "value": "${SSO_BEARER_ONLY}" + }, + { + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "${SSO_SAML_KEYSTORE_SECRET}" + }, + { + "name": "SSO_SAML_KEYSTORE", + "value": "${SSO_SAML_KEYSTORE}" + }, + { + "name": "SSO_SAML_KEYSTORE_DIR", + "value": "/etc/sso-saml-secret-volume" + }, + { + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "${SSO_SAML_CERTIFICATE_NAME}" + }, + { + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "value": "${SSO_SAML_KEYSTORE_PASSWORD}" + }, + { + "name": "SSO_SECRET", + "value": "${SSO_SECRET}" + }, + { + "name": "SSO_ENABLE_CORS", + "value": "${SSO_ENABLE_CORS}" + }, + { + "name": "SSO_SAML_LOGOUT_PAGE", + "value": "${SSO_SAML_LOGOUT_PAGE}" + }, + { + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "value": "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + }, + { + "name": "SSO_OPENIDCONNECT_DEPLOYMENTS", + "value": "${SSO_OPENIDCONNECT_DEPLOYMENTS}" + }, + { + "name": "SSO_SAML_DEPLOYMENTS", + "value": "${SSO_SAML_DEPLOYMENTS}" + }, + { + "name": "HOSTNAME_HTTP", + "value": "${HOSTNAME_HTTP}" + }, + { + "name": "HOSTNAME_HTTPS", + "value": "${HOSTNAME_HTTPS}" } ] } diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-amq-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-amq-s2i.json index 754a3b4c0..1989036fa 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-amq-s2i.json @@ -5,8 +5,9 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.2 decision server A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,amq,java,messaging,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.3.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server + A-MQ (with https)" }, "name": "decisionserver62-amq-s2i" }, @@ -14,20 +15,24 @@ "template": "decisionserver62-amq-s2i", "xpaas": "1.3.3" }, + "message": "A new BRMS/A-MQ application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "HelloRulesContainer=org.openshift.quickstarts:decisionserver-hellorules:1.2.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,102 +40,119 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -138,6 +160,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -145,18 +168,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -164,6 +190,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -171,6 +198,7 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -198,7 +226,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -222,7 +251,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -564,7 +594,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-basic-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-basic-s2i.json index 8be4ac90b..25b2c162c 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-basic-s2i.json @@ -5,8 +5,9 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.2 decision server applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.3.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server (no https)" }, "name": "decisionserver62-basic-s2i" }, @@ -14,20 +15,24 @@ "template": "decisionserver62-basic-s2i", "xpaas": "1.3.3" }, + "message": "A new BRMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "HelloRulesContainer=org.openshift.quickstarts:decisionserver-hellorules:1.2.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,48 +40,56 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -84,6 +97,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -91,6 +105,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -98,6 +113,7 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-https-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-https-s2i.json index bf9047599..85605d642 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-https-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver62-https-s2i.json @@ -5,8 +5,9 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.2 decision server HTTPS applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.3.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server (with https)" }, "name": "decisionserver62-https-s2i" }, @@ -14,32 +15,38 @@ "template": "decisionserver62-https-s2i", "xpaas": "1.3.3" }, + "message": "A new BRMS application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "HelloRulesContainer=org.openshift.quickstarts:decisionserver-hellorules:1.2.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,78 +54,91 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -126,6 +146,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +154,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -140,6 +162,7 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-amq-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-amq-s2i.json index 51e667e02..ecea54d94 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-amq-s2i.json @@ -5,29 +5,34 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.3 decision server A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,amq,java,messaging,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server + A-MQ (with https)" }, "name": "decisionserver63-amq-s2i" }, "labels": { "template": "decisionserver63-amq-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BRMS/A-MQ application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,108 +40,126 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -144,6 +167,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -151,18 +175,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,6 +197,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -177,10 +205,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -204,7 +246,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -228,7 +271,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -334,13 +378,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-decisionserver63-openshift:1.3" + "name": "jboss-decisionserver63-openshift:1.4" } } }, @@ -574,7 +626,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-basic-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-basic-s2i.json index c5f0d006a..d655dbe94 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-basic-s2i.json @@ -5,29 +5,34 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.3 decision server applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server (no https)" }, "name": "decisionserver63-basic-s2i" }, "labels": { "template": "decisionserver63-basic-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BRMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,48 +40,56 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -84,6 +97,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -91,6 +105,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -98,10 +113,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -184,13 +213,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-decisionserver63-openshift:1.3" + "name": "jboss-decisionserver63-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-https-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-https-s2i.json index 3db0e4c84..78e79c0cf 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-https-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/decisionserver63-https-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.3 decision server HTTPS applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server (with https)" }, "name": "decisionserver63-https-s2i" }, "labels": { "template": "decisionserver63-https-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BRMS application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,78 +54,91 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -126,6 +146,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +154,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -140,10 +162,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -273,13 +309,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-decisionserver63-openshift:1.3" + "name": "jboss-decisionserver63-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-amq-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-amq-persistent-s2i.json index 72dbb4302..912838175 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-amq-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-amq-persistent-s2i.json @@ -5,131 +5,153 @@ "annotations": { "description": "Application template for EAP 6 A-MQ applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + A-MQ (Persistent with https)" }, "name": "eap64-amq-persistent-s2i" }, "labels": { "template": "eap64-amq-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and A-MQ persistent based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -137,6 +159,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,18 +167,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +189,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,36 +197,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -207,10 +240,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -234,7 +281,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -258,7 +306,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -360,11 +409,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -641,7 +700,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-amq-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-amq-s2i.json index 9dd847451..dd4c7a27b 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-amq-s2i.json @@ -5,119 +5,139 @@ "annotations": { "description": "Application template for EAP 6 A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + A-MQ (Ephemeral with https)" }, "name": "eap64-amq-s2i" }, "labels": { "template": "eap64-amq-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and A-MQ based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +145,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,18 +153,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -151,6 +175,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -158,36 +183,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -195,10 +226,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -222,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -246,7 +292,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -348,11 +395,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -626,7 +683,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-basic-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-basic-s2i.json index 7b1800b7b..e13b3851b 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-basic-s2i.json @@ -6,58 +6,68 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 (no https)" }, "name": "eap64-basic-s2i" }, "labels": { "template": "eap64-basic-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 based application has been created in your project.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -65,6 +75,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -72,6 +83,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -79,12 +91,14 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -92,10 +106,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -174,11 +202,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-https-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-https-s2i.json index 31716d84c..0da32eb40 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-https-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-https-s2i.json @@ -6,100 +6,117 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 (with https)" }, "name": "eap64-https-s2i" }, "labels": { "template": "eap64-https-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,10 +183,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -287,11 +326,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mongodb-persistent-s2i.json index 212431056..77b75466d 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mongodb-persistent-s2i.json @@ -5,149 +5,175 @@ "annotations": { "description": "Application template for EAP 6 MongoDB applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MongoDB (Persistent with https)" }, "name": "eap64-mongodb-persistent-s2i" }, "labels": { "template": "eap64-mongodb-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MongoDB persistent based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -176,6 +205,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -183,6 +213,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -190,36 +221,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -227,10 +264,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -254,7 +312,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -278,7 +337,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -380,11 +440,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -674,7 +744,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mongodb-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mongodb-s2i.json index 13fbbdd93..2785782d4 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mongodb-s2i.json @@ -5,143 +5,168 @@ "annotations": { "description": "Application template for EAP 6 MongoDB applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MongoDB (Ephemeral with https)" }, "name": "eap64-mongodb-s2i" }, "labels": { "template": "eap64-mongodb-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -170,6 +198,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -177,6 +206,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -184,36 +214,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -221,10 +257,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -248,7 +305,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +330,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -374,11 +433,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -668,7 +737,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mysql-persistent-s2i.json index 69fdec206..cca0f9c2b 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mysql-persistent-s2i.json @@ -5,159 +5,187 @@ "annotations": { "description": "Application template for EAP 6 MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MySQL (Persistent with https)" }, "name": "eap64-mysql-persistent-s2i" }, "labels": { "template": "eap64-mysql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MySQL persistent based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +193,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -172,6 +201,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -179,6 +209,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -186,6 +217,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -193,36 +225,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -230,10 +268,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -257,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -281,7 +341,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -383,11 +444,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -681,7 +752,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mysql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mysql-s2i.json index 2bd3c249f..5766506fd 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-mysql-s2i.json @@ -5,153 +5,180 @@ "annotations": { "description": "Application template for EAP 6 MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MySQL (Ephemeral with https)" }, "name": "eap64-mysql-s2i" }, "labels": { "template": "eap64-mysql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +186,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -166,6 +194,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -173,6 +202,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -180,6 +210,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -187,36 +218,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -224,10 +261,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -251,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -275,7 +334,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -377,11 +437,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -675,7 +745,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-postgresql-persistent-s2i.json index 31f245950..01891774d 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-postgresql-persistent-s2i.json @@ -5,144 +5,169 @@ "annotations": { "description": "Application template for EAP 6 PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + PostgreSQL (Persistent with https)" }, "name": "eap64-postgresql-persistent-s2i" }, "labels": { "template": "eap64-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and PostgreSQL persistent based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -150,6 +175,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -157,6 +183,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -164,6 +191,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -171,6 +199,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -178,36 +207,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -215,10 +250,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -242,7 +298,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -266,7 +323,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -368,11 +426,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -666,7 +734,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-postgresql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-postgresql-s2i.json index eac964697..e00f2b0e3 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-postgresql-s2i.json @@ -5,138 +5,162 @@ "annotations": { "description": "Application template for EAP 6 PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + PostgreSQL (Ephemeral with https)" }, "name": "eap64-postgresql-s2i" }, "labels": { "template": "eap64-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,6 +168,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -151,6 +176,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,6 +184,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +192,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -172,36 +200,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -209,10 +243,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -236,7 +291,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -260,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -362,11 +419,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -660,7 +727,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-sso-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-sso-s2i.json index 09023be71..ec0739d04 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-sso-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-sso-s2i.json @@ -3,103 +3,120 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-jboss", + "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I, enabled for SSO.", - "tags": "eap,javaee,java,jboss,xpaas,sso,keycloak", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + Single Sign-On (with https)" }, "name": "eap64-sso-s2i" }, "labels": { "template": "eap64-sso-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 based application with SSL and SSO support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Hostname for http service route (e.g. eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTP", "value": "", "required": true }, { + "displayName": "Custom https Route Hostname", "description": "Hostname for https service route (e.g. secure-eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTPS", "value": "", "required": true }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/redhat-developer/redhat-sso-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.x-ose", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,84 +183,98 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false }, { + "displayName": "URL for SSO", "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", "name": "SSO_URL", "value": "", "required": true }, { - "description": "The URL for the interal SSO service, where secure-sso is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "displayName": "URL for SSO (internal service)", + "description": "The URL for the internal SSO service, where secure-sso is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", "name": "SSO_SERVICE_URL", "value": "https://secure-sso:8443/auth", "required": false }, { + "displayName": "SSO Realm", "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", "name": "SSO_REALM", "value": "", "required": true }, { + "displayName": "SSO Username", "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", "name": "SSO_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Password", "description": "The password for the SSO service user.", "name": "SSO_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Public Key", "description": "SSO Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability. This can be retrieved from the SSO server, for the specified realm.", "name": "SSO_PUBLIC_KEY", "value": "", "required": false }, { + "displayName": "SSO Bearer Only?", "description": "SSO Client Access Type", "name": "SSO_BEARER_ONLY", "value": "", "required": false }, { + "displayName": "Artifact Directories", "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", "name": "ARTIFACT_DIR", "value": "app-jee-jsp/target,service-jee-jaxrs/target,app-profile-jee-jsp/target,app-profile-saml-jee-jsp/target", "required": false }, { + "displayName": "SSO SAML Keystore Secret", "description": "The name of the secret containing the keystore file", "name": "SSO_SAML_KEYSTORE_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "SSO SAML Keystore", "description": "The name of the keystore file within the secret", "name": "SSO_SAML_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "SSO SAML Certificate Name", "description": "The name associated with the server certificate", "name": "SSO_SAML_CERTIFICATE_NAME", "value": "jboss", "required": false }, { + "displayName": "SSO SAML Keystore Password", "description": "The password for the keystore and certificate", "name": "SSO_SAML_KEYSTORE_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "SSO Client Secret", "description": "The SSO Client Secret for Confidential Access", "name": "SSO_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -243,42 +282,55 @@ "required": true }, { + "displayName": "Enable CORS for SSO?", "description": "Enable CORS for SSO applications", "name": "SSO_ENABLE_CORS", "value": "false", "required": false }, { + "displayName": "SSO SAML Logout Page", "description": "SSO logout page for SAML applications", "name": "SSO_SAML_LOGOUT_PAGE", "value": "/", "required": false }, { + "displayName": "Disable SSL Validation in EAP->SSO communication", "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", "value": "true", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "eap-app-secret", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false } - ], + ], "objects": [ { "kind": "Service", @@ -406,7 +458,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" }, "env": [ { @@ -416,6 +468,10 @@ { "name": "MAVEN_ARGS_APPEND", "value": "" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" } ] } @@ -615,7 +671,7 @@ "name": "HORNETQ_TOPICS", "value": "${HORNETQ_TOPICS}" }, - { + { "name": "JGROUPS_ENCRYPT_SECRET", "value": "${JGROUPS_ENCRYPT_SECRET}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-third-party-db-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-third-party-db-s2i.json new file mode 100644 index 000000000..e8f6d6585 --- /dev/null +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap64-third-party-db-s2i.json @@ -0,0 +1,646 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-jboss", + "description": "Application template for EAP 6 DB applications built using S2I. Includes support for installing third-party DB drivers.", + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 (with https, supporting third-party DB drivers)" + }, + "name": "eap64-third-party-db-s2i" + }, + "labels": { + "template": "eap64-third-party-db-s2i", + "xpaas": "1.4.0" + }, + "message": "A new EAP 6 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets:\"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed application(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Configuration Secret Name", + "description": "The name of the secret containing configuration properties for the datasources.", + "name": "CONFIGURATION_NAME", + "value": "eap-app-config", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "datavirt/hibernate-webapp", + "required": false + }, + { + "displayName": "Drivers ImageStreamTag", + "description": "ImageStreamTag definition for the image containing the drivers and configuration, e.g. jboss-datavirt63-openshift:1.0-driver", + "name": "EXTENSIONS_IMAGE", + "value": "jboss-datavirt63-driver-openshift:1.0", + "required": true + }, + { + "displayName": "Drivers ImageStream Namespace", + "description": "Namespace within which the ImageStream definition for the image containing the drivers and configuration is located.", + "name": "EXTENSIONS_IMAGE_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Drivers Image Install Directory", + "description": "Full path to the directory within the extensions image where the extensions are located (e.g. install.sh, modules/, etc.)", + "name": "EXTENSIONS_INSTALL_DIR", + "value": "/extensions", + "required": true + }, + { + "displayName": "Queue Names", + "description": "Queue names to preconfigure within HornetQ subsystem.", + "name": "HORNETQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topic Names", + "description": "Topic names to preconfigure within HornetQ subsystem.", + "name": "HORNETQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "eap-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "HornetQ Cluster Admin Password", + "description": "Admin password for HornetQ cluster.", + "name": "HORNETQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "A secret string used to configure the GitHub webhook.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore to be used for securing JGroups communications.", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the JGroups secret.", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the JGroups server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "secret-key", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "password", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/extras", + "sourcePath": "${EXTENSIONS_INSTALL_DIR}/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.5" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/eap-environment", + "readOnly": true + }, + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "ENV_FILES", + "value": "/etc/eap-environment/*" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "HORNETQ_CLUSTER_PASSWORD", + "value": "${HORNETQ_CLUSTER_PASSWORD}" + }, + { + "name": "HORNETQ_QUEUES", + "value": "${HORNETQ_QUEUES}" + }, + { + "name": "HORNETQ_TOPICS", + "value": "${HORNETQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + }, + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-amq-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-amq-persistent-s2i.json index f08cdf2f9..3f0eba6e3 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-amq-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-amq-persistent-s2i.json @@ -5,131 +5,153 @@ "annotations": { "description": "Application template for EAP 7 A-MQ applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + A-MQ (Persistent with https)" }, "name": "eap70-amq-persistent-s2i" }, "labels": { "template": "eap70-amq-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and A-MQ persistent based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -137,6 +159,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,18 +167,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +189,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,36 +197,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -207,10 +240,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -234,7 +281,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -258,7 +306,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -360,11 +409,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -641,7 +700,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-amq-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-amq-s2i.json index 3ca9e9fab..f2d65f353 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-amq-s2i.json @@ -5,119 +5,139 @@ "annotations": { "description": "Application template for EAP 7 A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + A-MQ (with https)" }, "name": "eap70-amq-s2i" }, "labels": { "template": "eap70-amq-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and A-MQ based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +145,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,18 +153,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -151,6 +175,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -158,36 +183,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -195,10 +226,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -222,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -246,7 +292,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -348,11 +395,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -626,7 +683,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-basic-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-basic-s2i.json index 83b4d5b24..c33e3f7cb 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-basic-s2i.json @@ -6,58 +6,68 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 7 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 (no https)" }, "name": "eap70-basic-s2i" }, "labels": { "template": "eap70-basic-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 based application has been created in your project.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.0.GA", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -65,6 +75,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -72,6 +83,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -79,12 +91,14 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -92,10 +106,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -174,11 +202,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-https-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-https-s2i.json index 1292442a4..7542d31c8 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-https-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-https-s2i.json @@ -6,100 +6,117 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 7 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 (with https)" }, "name": "eap70-https-s2i" }, "labels": { "template": "eap70-https-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.0.GA", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,10 +183,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -287,11 +326,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mongodb-persistent-s2i.json index 99db77d58..8a7da66c1 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mongodb-persistent-s2i.json @@ -5,149 +5,175 @@ "annotations": { "description": "Application template for EAP 7 MongoDB applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MongoDB (Persistent with https)" }, "name": "eap70-mongodb-persistent-s2i" }, "labels": { "template": "eap70-mongodb-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MongoDB persistent based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -176,6 +205,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -183,6 +213,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -190,36 +221,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -227,10 +264,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -254,7 +312,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -278,7 +337,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -380,11 +440,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -685,7 +755,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mongodb-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mongodb-s2i.json index c8150c231..ae52a3deb 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mongodb-s2i.json @@ -5,143 +5,168 @@ "annotations": { "description": "Application template for EAP 7 MongoDB applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MongoDB (Ephemeral with https)" }, "name": "eap70-mongodb-s2i" }, "labels": { "template": "eap70-mongodb-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -170,6 +198,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -177,6 +206,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -184,36 +214,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -221,10 +257,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -248,7 +305,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +330,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -374,11 +433,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -679,7 +748,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mysql-persistent-s2i.json index f8e5c2b04..a0a3d7717 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mysql-persistent-s2i.json @@ -5,159 +5,187 @@ "annotations": { "description": "Application template for EAP 7 MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MySQL (Persistent with https)" }, "name": "eap70-mysql-persistent-s2i" }, "labels": { "template": "eap70-mysql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MySQL persistent based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +193,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -172,6 +201,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -179,6 +209,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -186,6 +217,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -193,36 +225,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -230,10 +268,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -257,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -281,7 +341,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -383,11 +444,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -696,7 +767,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mysql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mysql-s2i.json index 1edeb62e7..8255ade5d 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-mysql-s2i.json @@ -5,153 +5,180 @@ "annotations": { "description": "Application template for EAP 7 MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MySQL (Ephemeral with https)" }, "name": "eap70-mysql-s2i" }, "labels": { "template": "eap70-mysql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +186,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -166,6 +194,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -173,6 +202,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -180,6 +210,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -187,36 +218,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -224,10 +261,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -251,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -275,7 +334,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -377,11 +437,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -690,7 +760,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-postgresql-persistent-s2i.json index d11df06ee..436c541d8 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-postgresql-persistent-s2i.json @@ -5,144 +5,169 @@ "annotations": { "description": "Application template for EAP 7 PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + PostgreSQL (Persistent with https)" }, "name": "eap70-postgresql-persistent-s2i" }, "labels": { "template": "eap70-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and PostgreSQL persistent based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -150,6 +175,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -157,6 +183,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -164,6 +191,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -171,6 +199,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -178,36 +207,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -215,10 +250,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -242,7 +298,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -266,7 +323,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -368,11 +426,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -681,7 +749,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-postgresql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-postgresql-s2i.json index 6b7f6d707..a2a37a886 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-postgresql-s2i.json @@ -5,138 +5,162 @@ "annotations": { "description": "Application template for EAP 7 PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + PostgreSQL (Ephemeral with https)" }, "name": "eap70-postgresql-s2i" }, "labels": { "template": "eap70-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,6 +168,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -151,6 +176,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,6 +184,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +192,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -172,36 +200,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -209,10 +243,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -236,7 +291,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -260,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -362,11 +419,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -675,7 +742,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-sso-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-sso-s2i.json index 811602220..08a844cd9 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-sso-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-sso-s2i.json @@ -3,103 +3,120 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-jboss", + "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I, enabled for SSO.", - "tags": "eap,javaee,java,jboss,xpaas,sso,keycloak", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + Single Sign-On (with https)" }, "name": "eap70-sso-s2i" }, "labels": { "template": "eap70-sso-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 based application with SSL and SSO support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Hostname for http service route (e.g. eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTP", "value": "", "required": true }, { + "displayName": "Custom https Route Hostname", "description": "Hostname for https service route (e.g. secure-eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTPS", "value": "", "required": true }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/redhat-developer/redhat-sso-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.x-ose", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,84 +183,98 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false }, { + "displayName": "URL for SSO", "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", "name": "SSO_URL", "value": "", "required": true }, { - "description": "The URL for the interal SSO service, where secure-sso (the default) is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "displayName": "URL for SSO (internal service)", + "description": "The URL for the internal SSO service, where secure-sso (the default) is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", "name": "SSO_SERVICE_URL", "value": "https://secure-sso:8443/auth", "required": false }, { + "displayName": "SSO Realm", "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", "name": "SSO_REALM", "value": "", "required": true }, { + "displayName": "SSO Username", "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", "name": "SSO_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Password", "description": "The password for the SSO service user.", "name": "SSO_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Public Key", "description": "SSO Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability", "name": "SSO_PUBLIC_KEY", "value": "", "required": false }, { + "displayName": "SSO Bearer Only?", "description": "SSO Client Access Type", "name": "SSO_BEARER_ONLY", "value": "", "required": false }, { + "displayName": "Artifact Directories", "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", "name": "ARTIFACT_DIR", "value": "app-jee-jsp/target,service-jee-jaxrs/target,app-profile-jee-jsp/target,app-profile-saml-jee-jsp/target", "required": false }, { + "displayName": "SSO SAML Keystore Secret", "description": "The name of the secret containing the keystore file", "name": "SSO_SAML_KEYSTORE_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "SSO SAML Keystore", "description": "The name of the keystore file within the secret", "name": "SSO_SAML_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "SSO SAML Certificate Name", "description": "The name associated with the server certificate", "name": "SSO_SAML_CERTIFICATE_NAME", "value": "jboss", "required": false }, { + "displayName": "SSO SAML Keystore Password", "description": "The password for the keystore and certificate", "name": "SSO_SAML_KEYSTORE_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "SSO Client Secret", "description": "The SSO Client Secret for Confidential Access", "name": "SSO_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -243,42 +282,55 @@ "required": true }, { + "displayName": "Enable CORS for SSO?", "description": "Enable CORS for SSO applications", "name": "SSO_ENABLE_CORS", "value": "false", "required": false }, { + "displayName": "SSO SAML Logout Page", "description": "SSO logout page for SAML applications", "name": "SSO_SAML_LOGOUT_PAGE", "value": "/", "required": false }, { + "displayName": "Disable SSL Validation in EAP->SSO communication", "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", "value": "true", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "eap7-app-secret", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false } - ], + ], "objects": [ { "kind": "Service", @@ -406,7 +458,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" }, "env": [ { @@ -416,6 +468,10 @@ { "name": "MAVEN_ARGS_APPEND", "value": "" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" } ] } @@ -593,7 +649,7 @@ { "name": "HOSTNAME_HTTPS", "value": "${HOSTNAME_HTTPS}" - }, + }, { "name": "HTTPS_KEYSTORE_DIR", "value": "/etc/eap-secret-volume" @@ -626,7 +682,7 @@ "name": "HORNETQ_TOPICS", "value": "${HORNETQ_TOPICS}" }, - { + { "name": "JGROUPS_ENCRYPT_SECRET", "value": "${JGROUPS_ENCRYPT_SECRET}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-third-party-db-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-third-party-db-s2i.json new file mode 100644 index 000000000..9e854d7ab --- /dev/null +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/eap70-third-party-db-s2i.json @@ -0,0 +1,657 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-jboss", + "description": "Application template for EAP 7 DB applications built using S2I. Includes support for installing third-party DB drivers.", + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 (with https, supporting third-party DB drivers)" + }, + "name": "eap70-third-party-db-s2i" + }, + "labels": { + "template": "eap70-third-party-db-s2i", + "xpaas": "1.4.0" + }, + "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets:\"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed application(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Configuration Secret Name", + "description": "The name of the secret containing configuration properties for the datasources.", + "name": "CONFIGURATION_NAME", + "value": "eap-app-config", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "datavirt/hibernate-webapp", + "required": false + }, + { + "displayName": "Drivers ImageStreamTag", + "description": "ImageStreamTag definition for the image containing the drivers and configuration, e.g. jboss-datavirt63-openshift:1.0-driver", + "name": "EXTENSIONS_IMAGE", + "value": "jboss-datavirt63-driver-openshift:1.0", + "required": true + }, + { + "displayName": "Drivers ImageStream Namespace", + "description": "Namespace within which the ImageStream definition for the image containing the drivers and configuration is located.", + "name": "EXTENSIONS_IMAGE_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Drivers Image Install Directory", + "description": "Full path to the directory within the extensions image where the extensions are located (e.g. install.sh, modules/, etc.)", + "name": "EXTENSIONS_INSTALL_DIR", + "value": "/extensions", + "required": true + }, + { + "displayName": "Queue Names", + "description": "Queue names to preconfigure within Messaging subsystem.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topic Names", + "description": "Topic names to preconfigure within Messaging subsystem.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "eap-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Messaging Cluster Admin Password", + "description": "Admin password for Messaging cluster.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "A secret string used to configure the GitHub webhook.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore to be used for securing JGroups communications.", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the JGroups secret.", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the JGroups server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "secret-key", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "password", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/extras", + "sourcePath": "${EXTENSIONS_INSTALL_DIR}/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap70-openshift:1.5" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/eap-environment", + "readOnly": true + }, + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "ENV_FILES", + "value": "/etc/eap-environment/*" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + }, + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-basic-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-basic-s2i.json index 413a6de87..4e42e0eca 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-basic-s2i.json @@ -6,46 +6,54 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat7,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 (no https)" }, "name": "jws30-tomcat7-basic-s2i" }, "labels": { "template": "jws30-tomcat7-basic-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -53,6 +61,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,6 +69,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -67,6 +77,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -74,10 +85,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -156,11 +181,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -248,7 +283,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-https-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-https-s2i.json index 610ea9441..f5fc2e581 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-https-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-https-s2i.json @@ -6,76 +6,89 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat7,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 (with https)" }, "name": "jws30-tomcat7-https-s2i" }, "labels": { "template": "jws30-tomcat7-https-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -83,6 +96,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -90,6 +104,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -97,6 +112,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -104,10 +120,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -233,11 +263,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -326,7 +366,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json index 6ef9d6e4c..2a73a182c 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json @@ -5,125 +5,147 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat7,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MongoDB (Persistent with https)" }, "name": "jws30-tomcat7-mongodb-persistent-s2i" }, "labels": { "template": "jws30-tomcat7-mongodb-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 7 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -131,6 +153,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -138,6 +161,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -145,6 +169,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -152,6 +177,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +185,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -166,6 +193,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -173,10 +201,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -200,7 +249,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -224,7 +274,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -326,11 +377,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -419,7 +480,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -547,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mongodb-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mongodb-s2i.json index 9b48f8ae7..a71dfa634 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mongodb-s2i.json @@ -5,119 +5,140 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications built using S2I.", - "tags": "tomcat,tomcat7,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MongoDB (Ephemeral with https)" }, "name": "jws30-tomcat7-mongodb-s2i" }, "labels": { "template": "jws30-tomcat7-mongodb-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +146,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,6 +154,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -139,6 +162,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -146,6 +170,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -153,6 +178,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -160,6 +186,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -167,10 +194,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -194,7 +242,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -218,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -320,11 +370,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -413,7 +473,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -541,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json index 30af703ce..9a05dcbd5 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json @@ -5,135 +5,159 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat7,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MySQL (Persistent with https)" }, "name": "jws30-tomcat7-mysql-persistent-s2i" }, "labels": { "template": "jws30-tomcat7-mysql-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 7 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -141,6 +165,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +173,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -176,10 +205,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -203,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -227,7 +278,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -329,11 +381,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -422,7 +484,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -546,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mysql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mysql-s2i.json index c2843af63..553a30a44 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-mysql-s2i.json @@ -5,129 +5,152 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications built using S2I.", - "tags": "tomcat,tomcat7,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MySQL (Ephemeral with https)" }, "name": "jws30-tomcat7-mysql-s2i" }, "labels": { "template": "jws30-tomcat7-mysql-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -135,6 +158,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -142,6 +166,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,10 +198,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -197,7 +246,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -221,7 +271,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -323,11 +374,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -416,7 +477,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -540,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json index b8372f374..a5c6c8a56 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json @@ -5,120 +5,141 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat7,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + PostgreSQL (Persistent with https)" }, "name": "jws30-tomcat7-postgresql-persistent-s2i" }, "labels": { "template": "jws30-tomcat7-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 7 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -126,6 +147,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +155,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -140,6 +163,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -147,6 +171,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -154,6 +179,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -161,10 +187,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -188,7 +235,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -212,7 +260,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -314,11 +363,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -407,7 +466,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -531,7 +590,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-postgresql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-postgresql-s2i.json index cd5bb9fa4..61a3208e4 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat7-postgresql-s2i.json @@ -5,114 +5,134 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications built using S2I.", - "tags": "tomcat,tomcat7,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + PostgreSQL (Ephemeral with https)" }, "name": "jws30-tomcat7-postgresql-s2i" }, "labels": { "template": "jws30-tomcat7-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -120,6 +140,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -127,6 +148,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -134,6 +156,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -141,6 +164,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +172,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -155,10 +180,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -182,7 +228,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -206,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -308,11 +356,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -401,7 +459,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -525,7 +583,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-basic-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-basic-s2i.json index cb1e49d29..75d08e99d 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-basic-s2i.json @@ -6,46 +6,54 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat8,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 (no https)" }, "name": "jws30-tomcat8-basic-s2i" }, "labels": { "template": "jws30-tomcat8-basic-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -53,6 +61,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,6 +69,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -67,6 +77,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -74,10 +85,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -156,11 +181,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -248,7 +283,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-https-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-https-s2i.json index 21d5662c7..71577bec4 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-https-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-https-s2i.json @@ -6,76 +6,89 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat8,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 (with https)" }, "name": "jws30-tomcat8-https-s2i" }, "labels": { "template": "jws30-tomcat8-https-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -83,6 +96,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -90,6 +104,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -97,6 +112,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -104,10 +120,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -233,11 +263,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -326,7 +366,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json index 34657d826..de86dd83e 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json @@ -5,125 +5,147 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat8,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MongoDB (Persistent with https)" }, "name": "jws30-tomcat8-mongodb-persistent-s2i" }, + "message": "A new persistent JWS application for Tomcat 8 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "labels": { "template": "jws30-tomcat8-mongodb-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -131,6 +153,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -138,6 +161,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -145,6 +169,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -152,6 +177,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +185,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -166,6 +193,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -173,10 +201,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -200,7 +249,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -224,7 +274,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -326,11 +377,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -419,7 +480,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -547,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mongodb-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mongodb-s2i.json index 974cfaddb..6dc85e226 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mongodb-s2i.json @@ -5,119 +5,140 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications built using S2I.", - "tags": "tomcat,tomcat8,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MongoDB (Ephemeral with https)" }, "name": "jws30-tomcat8-mongodb-s2i" }, "labels": { "template": "jws30-tomcat8-mongodb-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +146,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,6 +154,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -139,6 +162,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -146,6 +170,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -153,6 +178,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -160,6 +186,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -167,10 +194,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -194,7 +242,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -218,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -320,11 +370,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -413,7 +473,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -541,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json index 7a8231cc5..0e96b58a9 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json @@ -5,135 +5,159 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat8,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MySQL (Persistent with https)" }, "name": "jws30-tomcat8-mysql-persistent-s2i" }, "labels": { "template": "jws30-tomcat8-mysql-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 8 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -141,6 +165,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +173,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -176,10 +205,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -203,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -227,7 +278,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -329,11 +381,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -422,7 +484,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -546,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mysql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mysql-s2i.json index cda21f237..08b040863 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-mysql-s2i.json @@ -5,129 +5,152 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications built using S2I.", - "tags": "tomcat,tomcat8,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MySQL (Ephemeral with https)" }, "name": "jws30-tomcat8-mysql-s2i" }, "labels": { "template": "jws30-tomcat8-mysql-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -135,6 +158,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -142,6 +166,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,10 +198,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -197,7 +246,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -221,7 +271,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -323,11 +374,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -416,7 +477,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -540,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json index 4dfc98015..f117e6624 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json @@ -5,120 +5,141 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat8,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + PostgreSQL (Persistent with https)" }, "name": "jws30-tomcat8-postgresql-persistent-s2i" }, "labels": { "template": "jws30-tomcat8-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 8 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -126,6 +147,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +155,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -140,6 +163,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -147,6 +171,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -154,6 +179,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -161,10 +187,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -188,7 +235,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -212,7 +260,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -314,11 +363,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -407,7 +466,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -531,7 +590,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-postgresql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-postgresql-s2i.json index f6c85668c..faece1269 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/jws30-tomcat8-postgresql-s2i.json @@ -5,114 +5,134 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications built using S2I.", - "tags": "tomcat,tomcat8,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + (PostgreSQL with https)" }, "name": "jws30-tomcat8-postgresql-s2i" }, "labels": { "template": "jws30-tomcat8-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -120,6 +140,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -127,6 +148,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -134,6 +156,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -141,6 +164,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +172,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -155,10 +180,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -182,7 +228,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -206,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -308,11 +356,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -400,7 +458,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -524,7 +582,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/openjdk18-web-basic-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/openjdk18-web-basic-s2i.json index 143e16756..a48e204ae 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/openjdk18-web-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/openjdk18-web-basic-s2i.json @@ -6,13 +6,14 @@ "iconClass": "icon-jboss", "description": "Application template for Java applications built using S2I.", "tags": "java,xpaas", - "version": "1.0.0" + "version": "1.1.0", + "openshift.io/display-name": "Red Hat OpenJDK 8" }, "name": "openjdk18-web-basic-s2i" }, "labels": { "template": "openjdk18-web-basic-s2i", - "xpaas": "1.0.0" + "xpaas": "1.4.0" }, "message": "A new java application has been created in your project.", "parameters": [ @@ -155,7 +156,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-openjdk18-openshift:1.0" + "name": "redhat-openjdk18-openshift:1.1" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json index 1dea463ac..d1705c88c 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + MySQL (Persistent with https)" }, "name": "processserver63-amq-mysql-persistent-s2i" }, "labels": { "template": "processserver63-amq-mysql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using MySQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,144 +54,168 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -192,6 +223,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -199,46 +231,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -246,6 +287,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -253,18 +295,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -272,6 +317,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -279,10 +325,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -306,7 +373,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -330,7 +398,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -460,13 +529,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -788,7 +865,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, @@ -919,7 +996,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-mysql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-mysql-s2i.json index 42264585b..665cb76a3 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-mysql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + MySQL (Ephemeral with https)" }, "name": "processserver63-amq-mysql-s2i" }, "labels": { "template": "processserver63-amq-mysql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using MySQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,132 +54,154 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -180,6 +209,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -187,46 +217,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -234,6 +273,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -241,18 +281,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -260,6 +303,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -267,10 +311,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -294,7 +359,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -318,7 +384,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -448,13 +515,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -740,7 +815,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, @@ -837,7 +912,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json index f6d0c99ed..5a395a0f3 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + PostgreSQL (Persistent with https)" }, "name": "processserver63-amq-postgresql-persistent-s2i" }, "labels": { "template": "processserver63-amq-postgresql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using PostgreSQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,144 +54,168 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -192,6 +223,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -199,31 +231,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -231,6 +269,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -238,18 +277,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -257,6 +299,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -264,10 +307,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -291,7 +355,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -315,7 +380,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -445,13 +511,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -773,7 +847,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, @@ -892,7 +966,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-postgresql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-postgresql-s2i.json index 41c726cf0..e7c5efdc9 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-amq-postgresql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + PostgreSQL (Ephemeral with https)" }, "name": "processserver63-amq-postgresql-s2i" }, "labels": { "template": "processserver63-amq-postgresql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using PostgreSQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,132 +54,154 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -180,6 +209,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -187,31 +217,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -219,6 +255,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -226,18 +263,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -245,6 +285,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -252,10 +293,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -279,7 +341,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -303,7 +366,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -433,13 +497,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -725,7 +797,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, @@ -810,7 +882,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-basic-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-basic-s2i.json index 170c919cb..e70d20a6e 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-basic-s2i.json @@ -5,29 +5,34 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,javaee,java,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server (no https)" }, "name": "processserver63-basic-s2i" }, "labels": { "template": "processserver63-basic-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,54 +40,63 @@ "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.H2Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -90,6 +104,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -97,6 +112,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -104,10 +120,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -190,13 +220,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-mysql-persistent-s2i.json index 89d0db1a6..f76b07b0b 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-mysql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + MySQL (Persistent with https)" }, "name": "processserver63-mysql-persistent-s2i" }, "labels": { "template": "processserver63-mysql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using MySQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,108 +54,126 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +181,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,46 +189,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -210,6 +245,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -217,6 +253,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -224,10 +261,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -251,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -275,7 +334,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -381,13 +441,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -681,7 +749,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-mysql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-mysql-s2i.json index 26cab29f8..a3be02eab 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-mysql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + MySQL (Ephemeral with https)" }, "name": "processserver63-mysql-s2i" }, "labels": { "template": "processserver63-mysql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using MySQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,102 +54,119 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -150,6 +174,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -157,46 +182,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -204,6 +238,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -211,6 +246,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -218,10 +254,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -245,7 +302,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -269,7 +327,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -375,13 +434,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -639,7 +706,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-postgresql-persistent-s2i.json index 32a512829..361b177f9 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-postgresql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + PostgreSQL (Persistent with https)" }, "name": "processserver63-postgresql-persistent-s2i" }, "labels": { "template": "processserver63-postgresql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using PostgreSQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,108 +54,126 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +181,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,31 +189,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -195,6 +227,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -202,6 +235,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -209,10 +243,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -236,7 +291,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -260,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -366,13 +423,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -666,7 +731,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-postgresql-s2i.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-postgresql-s2i.json index 55e2199bb..451915a1d 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/processserver63-postgresql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + PostgreSQL (Ephemeral with https)" }, "name": "processserver63-postgresql-s2i" }, "labels": { "template": "processserver63-postgresql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using PostgreSQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,102 +54,119 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -150,6 +174,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -157,31 +182,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -189,6 +220,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -196,6 +228,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -203,10 +236,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -230,7 +284,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -254,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -360,13 +416,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -624,7 +688,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-https.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-https.json index fb0578a67..5e956f449 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-https.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-https.json @@ -5,110 +5,129 @@ "annotations": { "description": "Application template for SSO 7.0", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,java,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" }, "name": "sso70-https" }, "labels": { "template": "sso70-https", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new SSO service has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -116,54 +135,65 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", @@ -283,10 +313,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-mysql-persistent.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-mysql-persistent.json index dcbb24bf1..0fb2703c7 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-mysql-persistent.json @@ -5,123 +5,145 @@ "annotations": { "description": "Application template for SSO 7.0 MySQL applications with persistent storage", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,mysql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + MySQL (Persistent)" }, "name": "sso70-mysql-persistent" }, "labels": { "template": "sso70-mysql-persistent", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -129,6 +151,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -136,36 +159,42 @@ "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -173,58 +202,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -248,7 +295,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +320,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -364,10 +413,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -639,7 +688,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-mysql.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-mysql.json index 1768f7a1b..9beae806b 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-mysql.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-mysql.json @@ -5,123 +5,145 @@ "annotations": { "description": "Application template for SSO 7.0 MySQL applications", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,mysql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + MySQL (Ephemeral)" }, "name": "sso70-mysql" }, "labels": { "template": "sso70-mysql", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -129,6 +151,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -136,30 +159,35 @@ "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -167,58 +195,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -240,10 +286,11 @@ "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}", - "component": "server" + "component": "server" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -268,7 +315,8 @@ "component": "server" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -349,7 +397,7 @@ "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}", - "component": "server" + "component": "server" } }, "spec": { @@ -364,10 +412,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -641,7 +689,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-postgresql-persistent.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-postgresql-persistent.json index 4c2f81f2e..e22399351 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-postgresql-persistent.json @@ -5,108 +5,127 @@ "annotations": { "description": "Application template for SSO 7.0 PostgreSQL applications with persistent storage", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,postrgresql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + PostgreSQL (Persistent)" }, "name": "sso70-postgresql-persistent" }, "labels": { "template": "sso70-postgresql-persistent", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -114,6 +133,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +141,42 @@ "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,58 +184,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -233,7 +277,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -257,7 +302,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -349,10 +395,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -624,7 +670,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-postgresql.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-postgresql.json index d8402ef72..aa8ebaa8e 100644 --- a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-postgresql.json +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso70-postgresql.json @@ -5,108 +5,127 @@ "annotations": { "description": "Application template for SSO 7.0 PostgreSQL applications", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,postrgresql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + PostgreSQL (Ephemeral)" }, "name": "sso70-postgresql" }, "labels": { "template": "sso70-postgresql", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -114,6 +133,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -121,30 +141,35 @@ "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -152,58 +177,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -228,7 +271,8 @@ "component": "server" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -253,7 +297,8 @@ "component": "server" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -349,10 +394,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -626,7 +671,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-https.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-https.json new file mode 100644 index 000000000..bee86d7c4 --- /dev/null +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-https.json @@ -0,0 +1,544 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + }, + "name": "sso71-https" + }, + "labels": { + "template": "sso71-https", + "xpaas": "1.4.0" + }, + "message": "A new SSO service has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-mysql-persistent.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-mysql-persistent.json new file mode 100644 index 000000000..49b37f348 --- /dev/null +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-mysql-persistent.json @@ -0,0 +1,799 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 MySQL applications with persistent storage", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + MySQL (Persistent)" + }, + "name": "sso71-mysql-persistent" + }, + "labels": { + "template": "sso71-mysql-persistent", + "xpaas": "1.4.0" + }, + "message": "A new persistent SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "512Mi", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-mysql.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-mysql.json new file mode 100644 index 000000000..634a75bab --- /dev/null +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-mysql.json @@ -0,0 +1,767 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 MySQL applications", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + MySQL (Ephemeral)" + }, + "name": "sso71-mysql" + }, + "labels": { + "template": "sso71-mysql", + "xpaas": "1.4.0" + }, + "message": "A new SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-postgresql-persistent.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-postgresql-persistent.json new file mode 100644 index 000000000..c53bb9d5b --- /dev/null +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-postgresql-persistent.json @@ -0,0 +1,773 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 PostgreSQL applications with persistent storage", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + PostgreSQL (Persistent)" + }, + "name": "sso71-postgresql-persistent" + }, + "labels": { + "template": "sso71-postgresql-persistent", + "xpaas": "1.4.0" + }, + "message": "A new persistent SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "512Mi", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-postgresql.json b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-postgresql.json new file mode 100644 index 000000000..c1fc41eda --- /dev/null +++ b/roles/openshift_examples/files/examples/v3.6/xpaas-templates/sso71-postgresql.json @@ -0,0 +1,741 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 PostgreSQL applications", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + PostgreSQL (Ephemeral)" + }, + "name": "sso71-postgresql" + }, + "labels": { + "template": "sso71-postgresql", + "xpaas": "1.4.0" + }, + "message": "A new SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ] + } + } + } + } + ] +} -- cgit v1.2.3 From 500a1dc37838fe9f886541739777a449ed26f066 Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 30 Jun 2017 11:18:37 -0400 Subject: Update latest image streams for v3.6 --- .../files/examples/v3.6/db-templates/mariadb-ephemeral-template.json | 2 +- .../files/examples/v3.6/db-templates/mariadb-persistent-template.json | 2 +- .../files/examples/v3.6/db-templates/mongodb-ephemeral-template.json | 2 +- .../files/examples/v3.6/db-templates/mongodb-persistent-template.json | 2 +- .../files/examples/v3.6/db-templates/mysql-ephemeral-template.json | 2 +- .../files/examples/v3.6/db-templates/mysql-persistent-template.json | 2 +- .../examples/v3.6/quickstart-templates/cakephp-mysql-persistent.json | 2 +- .../files/examples/v3.6/quickstart-templates/cakephp-mysql.json | 2 +- .../examples/v3.6/quickstart-templates/dancer-mysql-persistent.json | 2 +- .../files/examples/v3.6/quickstart-templates/dancer-mysql.json | 2 +- .../v3.6/quickstart-templates/django-postgresql-persistent.json | 2 +- .../files/examples/v3.6/quickstart-templates/django-postgresql.json | 2 +- .../files/examples/v3.6/quickstart-templates/dotnet-example.json | 2 +- .../files/examples/v3.6/quickstart-templates/httpd.json | 2 +- .../examples/v3.6/quickstart-templates/nodejs-mongodb-persistent.json | 2 +- .../files/examples/v3.6/quickstart-templates/nodejs-mongodb.json | 2 +- .../examples/v3.6/quickstart-templates/rails-postgresql-persistent.json | 2 +- .../files/examples/v3.6/quickstart-templates/rails-postgresql.json | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/roles/openshift_examples/files/examples/v3.6/db-templates/mariadb-ephemeral-template.json b/roles/openshift_examples/files/examples/v3.6/db-templates/mariadb-ephemeral-template.json index 40f8b7933..536f7275e 100644 --- a/roles/openshift_examples/files/examples/v3.6/db-templates/mariadb-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v3.6/db-templates/mariadb-ephemeral-template.json @@ -27,7 +27,7 @@ "annotations": { "template.openshift.io/expose-username": "{.data['database-user']}", "template.openshift.io/expose-password": "{.data['database-password']}", - "template.openshift.io/expose-root-password": "{.data['database-root-password']}" + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" } }, "stringData" : { diff --git a/roles/openshift_examples/files/examples/v3.6/db-templates/mariadb-persistent-template.json b/roles/openshift_examples/files/examples/v3.6/db-templates/mariadb-persistent-template.json index 3d8f592cb..3b7fdccce 100644 --- a/roles/openshift_examples/files/examples/v3.6/db-templates/mariadb-persistent-template.json +++ b/roles/openshift_examples/files/examples/v3.6/db-templates/mariadb-persistent-template.json @@ -27,7 +27,7 @@ "annotations": { "template.openshift.io/expose-username": "{.data['database-user']}", "template.openshift.io/expose-password": "{.data['database-password']}", - "template.openshift.io/expose-root-password": "{.data['database-root-password']}" + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" } }, "stringData" : { diff --git a/roles/openshift_examples/files/examples/v3.6/db-templates/mongodb-ephemeral-template.json b/roles/openshift_examples/files/examples/v3.6/db-templates/mongodb-ephemeral-template.json index 894cba750..ee274194f 100644 --- a/roles/openshift_examples/files/examples/v3.6/db-templates/mongodb-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v3.6/db-templates/mongodb-ephemeral-template.json @@ -28,7 +28,7 @@ "annotations": { "template.openshift.io/expose-username": "{.data['database-user']}", "template.openshift.io/expose-password": "{.data['database-password']}", - "template.openshift.io/expose-admin-password": "{.data['database-admin-password']}" + "template.openshift.io/expose-admin_password": "{.data['database-admin-password']}" } }, "stringData" : { diff --git a/roles/openshift_examples/files/examples/v3.6/db-templates/mongodb-persistent-template.json b/roles/openshift_examples/files/examples/v3.6/db-templates/mongodb-persistent-template.json index d5c25a5bb..e5ba43669 100644 --- a/roles/openshift_examples/files/examples/v3.6/db-templates/mongodb-persistent-template.json +++ b/roles/openshift_examples/files/examples/v3.6/db-templates/mongodb-persistent-template.json @@ -28,7 +28,7 @@ "annotations": { "template.openshift.io/expose-username": "{.data['database-user']}", "template.openshift.io/expose-password": "{.data['database-password']}", - "template.openshift.io/expose-admin-password": "{.data['database-admin-password']}" + "template.openshift.io/expose-admin_password": "{.data['database-admin-password']}" } }, "stringData" : { diff --git a/roles/openshift_examples/files/examples/v3.6/db-templates/mysql-ephemeral-template.json b/roles/openshift_examples/files/examples/v3.6/db-templates/mysql-ephemeral-template.json index 10f3bb09e..969e62ac5 100644 --- a/roles/openshift_examples/files/examples/v3.6/db-templates/mysql-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v3.6/db-templates/mysql-ephemeral-template.json @@ -27,7 +27,7 @@ "annotations": { "template.openshift.io/expose-username": "{.data['database-user']}", "template.openshift.io/expose-password": "{.data['database-password']}", - "template.openshift.io/expose-root-password": "{.data['database-root-password']}" + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" } }, "stringData" : { diff --git a/roles/openshift_examples/files/examples/v3.6/db-templates/mysql-persistent-template.json b/roles/openshift_examples/files/examples/v3.6/db-templates/mysql-persistent-template.json index 2fd82093a..4f39d41a5 100644 --- a/roles/openshift_examples/files/examples/v3.6/db-templates/mysql-persistent-template.json +++ b/roles/openshift_examples/files/examples/v3.6/db-templates/mysql-persistent-template.json @@ -27,7 +27,7 @@ "annotations": { "template.openshift.io/expose-username": "{.data['database-user']}", "template.openshift.io/expose-password": "{.data['database-password']}", - "template.openshift.io/expose-root-password": "{.data['database-root-password']}" + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" } }, "stringData" : { diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/cakephp-mysql-persistent.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/cakephp-mysql-persistent.json index 8c79d3340..6d987ee33 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/cakephp-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/cakephp-mysql-persistent.json @@ -513,7 +513,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/cakephp-mysql.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/cakephp-mysql.json index 0f75f773f..fb2ef206e 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/cakephp-mysql.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/cakephp-mysql.json @@ -487,7 +487,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dancer-mysql-persistent.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dancer-mysql-persistent.json index f564d4606..7ffb25e14 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dancer-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dancer-mysql-persistent.json @@ -478,7 +478,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dancer-mysql.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dancer-mysql.json index 48283bfc2..d787e376b 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dancer-mysql.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dancer-mysql.json @@ -452,7 +452,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/django-postgresql-persistent.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/django-postgresql-persistent.json index 180eeb967..a2070207b 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/django-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/django-postgresql-persistent.json @@ -482,7 +482,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/django-postgresql.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/django-postgresql.json index da79c8dd0..0d33c6e0e 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/django-postgresql.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/django-postgresql.json @@ -456,7 +456,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dotnet-example.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dotnet-example.json index a09d71a00..af46579c8 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dotnet-example.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/dotnet-example.json @@ -4,7 +4,7 @@ "metadata": { "name": "dotnet-example", "annotations": { - "openshift.io/display-name": ".NET Core", + "openshift.io/display-name": ".NET Core Example", "description": "An example .NET Core application.", "tags": "quickstart,dotnet,.net", "iconClass": "icon-dotnet", diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/httpd.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/httpd.json index 5bfb4b019..ac671cc06 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/httpd.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/httpd.json @@ -259,7 +259,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/nodejs-mongodb-persistent.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/nodejs-mongodb-persistent.json index 167370811..a9c365361 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/nodejs-mongodb-persistent.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/nodejs-mongodb-persistent.json @@ -494,7 +494,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/nodejs-mongodb.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/nodejs-mongodb.json index 214c110d2..53a6147d5 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/nodejs-mongodb.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/nodejs-mongodb.json @@ -470,7 +470,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/rails-postgresql-persistent.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/rails-postgresql-persistent.json index 82a979379..f07a43071 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/rails-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/rails-postgresql-persistent.json @@ -533,7 +533,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/rails-postgresql.json b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/rails-postgresql.json index f32c4fc4a..a7992c988 100644 --- a/roles/openshift_examples/files/examples/v3.6/quickstart-templates/rails-postgresql.json +++ b/roles/openshift_examples/files/examples/v3.6/quickstart-templates/rails-postgresql.json @@ -507,7 +507,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, -- cgit v1.2.3 From 10ca432b753bb837a462b7c9e61c4acea34c115b Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 30 Jun 2017 11:21:33 -0400 Subject: xPaaS v1.4.0 for v3.5 --- .../v1.5/xpaas-streams/jboss-image-streams.json | 403 +++++++++-- .../examples/v1.5/xpaas-templates/amq62-basic.json | 21 +- .../v1.5/xpaas-templates/amq62-persistent-ssl.json | 30 +- .../v1.5/xpaas-templates/amq62-persistent.json | 25 +- .../examples/v1.5/xpaas-templates/amq62-ssl.json | 26 +- .../v1.5/xpaas-templates/datagrid65-basic.json | 50 +- .../v1.5/xpaas-templates/datagrid65-https.json | 59 +- .../datagrid65-mysql-persistent.json | 93 ++- .../v1.5/xpaas-templates/datagrid65-mysql.json | 92 ++- .../datagrid65-postgresql-persistent.json | 84 ++- .../xpaas-templates/datagrid65-postgresql.json | 83 ++- .../v1.5/xpaas-templates/datavirt63-basic-s2i.json | 73 +- .../datavirt63-extensions-support-s2i.json | 63 +- .../xpaas-templates/datavirt63-secure-s2i.json | 308 +++++++- .../xpaas-templates/decisionserver62-amq-s2i.json | 40 +- .../decisionserver62-basic-s2i.json | 20 +- .../decisionserver62-https-s2i.json | 27 +- .../xpaas-templates/decisionserver63-amq-s2i.json | 66 +- .../decisionserver63-basic-s2i.json | 45 +- .../decisionserver63-https-s2i.json | 52 +- .../xpaas-templates/eap64-amq-persistent-s2i.json | 75 +- .../v1.5/xpaas-templates/eap64-amq-s2i.json | 71 +- .../v1.5/xpaas-templates/eap64-basic-s2i.json | 44 +- .../v1.5/xpaas-templates/eap64-https-s2i.json | 55 +- .../eap64-mongodb-persistent-s2i.json | 86 ++- .../v1.5/xpaas-templates/eap64-mongodb-s2i.json | 85 ++- .../eap64-mysql-persistent-s2i.json | 87 ++- .../v1.5/xpaas-templates/eap64-mysql-s2i.json | 86 ++- .../eap64-postgresql-persistent-s2i.json | 84 ++- .../v1.5/xpaas-templates/eap64-postgresql-s2i.json | 83 ++- .../v1.5/xpaas-templates/eap64-sso-s2i.json | 72 +- .../xpaas-templates/eap64-third-party-db-s2i.json | 646 +++++++++++++++++ .../xpaas-templates/eap70-amq-persistent-s2i.json | 75 +- .../v1.5/xpaas-templates/eap70-amq-s2i.json | 71 +- .../v1.5/xpaas-templates/eap70-basic-s2i.json | 44 +- .../v1.5/xpaas-templates/eap70-https-s2i.json | 55 +- .../eap70-mongodb-persistent-s2i.json | 86 ++- .../v1.5/xpaas-templates/eap70-mongodb-s2i.json | 85 ++- .../eap70-mysql-persistent-s2i.json | 87 ++- .../v1.5/xpaas-templates/eap70-mysql-s2i.json | 86 ++- .../eap70-postgresql-persistent-s2i.json | 84 ++- .../v1.5/xpaas-templates/eap70-postgresql-s2i.json | 83 ++- .../v1.5/xpaas-templates/eap70-sso-s2i.json | 74 +- .../xpaas-templates/eap70-third-party-db-s2i.json | 657 +++++++++++++++++ .../xpaas-templates/jws30-tomcat7-basic-s2i.json | 43 +- .../xpaas-templates/jws30-tomcat7-https-s2i.json | 48 +- .../jws30-tomcat7-mongodb-persistent-s2i.json | 77 +- .../xpaas-templates/jws30-tomcat7-mongodb-s2i.json | 76 +- .../jws30-tomcat7-mysql-persistent-s2i.json | 78 +- .../xpaas-templates/jws30-tomcat7-mysql-s2i.json | 77 +- .../jws30-tomcat7-postgresql-persistent-s2i.json | 75 +- .../jws30-tomcat7-postgresql-s2i.json | 74 +- .../xpaas-templates/jws30-tomcat8-basic-s2i.json | 43 +- .../xpaas-templates/jws30-tomcat8-https-s2i.json | 48 +- .../jws30-tomcat8-mongodb-persistent-s2i.json | 77 +- .../xpaas-templates/jws30-tomcat8-mongodb-s2i.json | 76 +- .../jws30-tomcat8-mysql-persistent-s2i.json | 78 +- .../xpaas-templates/jws30-tomcat8-mysql-s2i.json | 77 +- .../jws30-tomcat8-postgresql-persistent-s2i.json | 75 +- .../jws30-tomcat8-postgresql-s2i.json | 74 +- .../xpaas-templates/openjdk18-web-basic-s2i.json | 7 +- .../processserver63-amq-mysql-persistent-s2i.json | 93 ++- .../processserver63-amq-mysql-s2i.json | 91 ++- ...cessserver63-amq-postgresql-persistent-s2i.json | 90 ++- .../processserver63-amq-postgresql-s2i.json | 88 ++- .../xpaas-templates/processserver63-basic-s2i.json | 46 +- .../processserver63-mysql-persistent-s2i.json | 82 ++- .../xpaas-templates/processserver63-mysql-s2i.json | 81 ++- .../processserver63-postgresql-persistent-s2i.json | 79 +- .../processserver63-postgresql-s2i.json | 78 +- .../examples/v1.5/xpaas-templates/sso70-https.json | 50 +- .../xpaas-templates/sso70-mysql-persistent.json | 75 +- .../examples/v1.5/xpaas-templates/sso70-mysql.json | 78 +- .../sso70-postgresql-persistent.json | 72 +- .../v1.5/xpaas-templates/sso70-postgresql.json | 71 +- .../examples/v1.5/xpaas-templates/sso71-https.json | 544 ++++++++++++++ .../xpaas-templates/sso71-mysql-persistent.json | 799 +++++++++++++++++++++ .../examples/v1.5/xpaas-templates/sso71-mysql.json | 767 ++++++++++++++++++++ .../sso71-postgresql-persistent.json | 773 ++++++++++++++++++++ .../v1.5/xpaas-templates/sso71-postgresql.json | 741 +++++++++++++++++++ 80 files changed, 9869 insertions(+), 553 deletions(-) create mode 100644 roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-third-party-db-s2i.json create mode 100644 roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-third-party-db-s2i.json create mode 100644 roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-https.json create mode 100644 roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-mysql-persistent.json create mode 100644 roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-mysql.json create mode 100644 roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-postgresql-persistent.json create mode 100644 roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-postgresql.json diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-streams/jboss-image-streams.json b/roles/openshift_examples/files/examples/v1.5/xpaas-streams/jboss-image-streams.json index 049f3f884..f77c1080c 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-streams/jboss-image-streams.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-streams/jboss-image-streams.json @@ -12,7 +12,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-webserver30-tomcat7-openshift" + "name": "jboss-webserver30-tomcat7-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat7-openshift", @@ -23,10 +26,11 @@ "description": "JBoss Web Server 3.0 Tomcat 7 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat7,java,jboss,xpaas", - "supports":"tomcat7:3.0,tomcat:7,java:8,xpaas:1.1", + "supports": "tomcat7:3.0,tomcat:7,java:8,xpaas:1.1", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.1" + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7" } }, { @@ -35,10 +39,23 @@ "description": "JBoss Web Server 3.0 Tomcat 7 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat7,java,jboss,xpaas", - "supports":"tomcat7:3.0,tomcat:7,java:8,xpaas:1.2", + "supports": "tomcat7:3.0,tomcat:7,java:8,xpaas:1.2", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Web Server 3.0 Tomcat 7 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,tomcat,tomcat7,java,jboss,xpaas", + "supports":"tomcat7:3.0,tomcat:7,java:8,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.3" } } ] @@ -48,7 +65,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-webserver30-tomcat8-openshift" + "name": "jboss-webserver30-tomcat8-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat8-openshift", @@ -59,10 +79,11 @@ "description": "JBoss Web Server 3.0 Tomcat 8 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat8,java,jboss,xpaas", - "supports":"tomcat8:3.0,tomcat:8,java:8,xpaas:1.1", + "supports": "tomcat8:3.0,tomcat:8,java:8,xpaas:1.1", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.1" + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8" } }, { @@ -71,10 +92,23 @@ "description": "JBoss Web Server 3.0 Tomcat 8 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat8,java,jboss,xpaas", - "supports":"tomcat8:3.0,tomcat:8,java:8,xpaas:1.2", + "supports": "tomcat8:3.0,tomcat:8,java:8,xpaas:1.2", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Web Server 3.0 Tomcat 8 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,tomcat,tomcat8,java,jboss,xpaas", + "supports":"tomcat8:3.0,tomcat:8,java:8,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.3" } } ] @@ -84,7 +118,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-eap64-openshift" + "name": "jboss-eap64-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-eap-6/eap64-openshift", @@ -95,11 +132,12 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.1", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.1", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.1" + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" } }, { @@ -108,11 +146,12 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.2", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.2", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" } }, { @@ -121,11 +160,12 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.3", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.3", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.3" + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" } }, { @@ -134,11 +174,25 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.4", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.4" + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" + } + }, + { + "name": "1.5", + "annotations": { + "description": "JBoss EAP 6.4 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,eap,javaee,java,jboss,xpaas", + "supports":"eap:6.4,javaee:6,java:8,xpaas:1.5", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "6.4.x", + "version": "1.5" } } ] @@ -148,7 +202,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-eap70-openshift" + "name": "jboss-eap70-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-eap-7/eap70-openshift", @@ -159,11 +216,12 @@ "description": "JBoss EAP 7.0 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:7.0,javaee:7,java:8,xpaas:1.3", + "supports": "eap:7.0,javaee:7,java:8,xpaas:1.3", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "7.0.0.GA", - "version": "1.3" + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" } }, { @@ -172,11 +230,25 @@ "description": "JBoss EAP 7.0 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:7.0,javaee:7,java:8,xpaas:1.4", + "supports": "eap:7.0,javaee:7,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "7.0.0.GA", - "version": "1.4" + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + } + }, + { + "name": "1.5", + "annotations": { + "description": "JBoss EAP 7.0 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,eap,javaee,java,jboss,xpaas", + "supports":"eap:7.0,javaee:7,java:8,xpaas:1.5", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.0.0.GA", + "version": "1.5" } } ] @@ -186,7 +258,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-decisionserver62-openshift" + "name": "jboss-decisionserver62-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-decisionserver-6/decisionserver62-openshift", @@ -196,12 +271,13 @@ "annotations": { "description": "Red Hat JBoss BRMS 6.2 decision server S2I images.", "iconClass": "icon-jboss", - "tags": "builder,decisionserver,java,xpaas", - "supports":"decisionserver:6.2,java:8,xpaas:1.2", + "tags": "builder,decisionserver,xpaas", + "supports": "decisionserver:6.2,xpaas:1.2", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "decisionserver/hellorules", "sampleRef": "1.2", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server" } } ] @@ -211,22 +287,39 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-decisionserver63-openshift" + "name": "jboss-decisionserver63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-decisionserver-6/decisionserver63-openshift", "tags": [ { "name": "1.3", + "annotations": { + "description": "Red Hat JBoss BRMS 6.3 decision server S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,decisionserver,xpaas", + "supports": "decisionserver:6.3,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "decisionserver/hellorules", + "sampleRef": "1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server" + } + }, + { + "name": "1.4", "annotations": { "description": "Red Hat JBoss BRMS 6.3 decision server S2I images.", "iconClass": "icon-jboss", "tags": "builder,decisionserver,java,xpaas", - "supports":"decisionserver:6.3,java:8,xpaas:1.3", + "supports":"decisionserver:6.3,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "decisionserver/hellorules", "sampleRef": "1.3", - "version": "1.3" + "version": "1.4" } } ] @@ -236,22 +329,39 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-processserver63-openshift" + "name": "jboss-processserver63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-processserver-6/processserver63-openshift", "tags": [ { "name": "1.3", + "annotations": { + "description": "Red Hat JBoss BPM Suite 6.3 intelligent process server S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,processserver,xpaas", + "supports": "processserver:6.3,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "processserver/library", + "sampleRef": "1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server" + } + }, + { + "name": "1.4", "annotations": { "description": "Red Hat JBoss BPM Suite 6.3 intelligent process server S2I images.", "iconClass": "icon-jboss", "tags": "builder,processserver,java,xpaas", - "supports":"processserver:6.3,java:8,xpaas:1.3", + "supports":"processserver:6.3,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "processserver/library", "sampleRef": "1.3", - "version": "1.3" + "version": "1.4" } } ] @@ -261,7 +371,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-datagrid65-openshift" + "name": "jboss-datagrid65-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-datagrid-6/datagrid65-openshift", @@ -271,9 +384,31 @@ "annotations": { "description": "JBoss Data Grid 6.5 S2I images.", "iconClass": "icon-jboss", - "tags": "datagrid,java,jboss,xpaas", - "supports":"datagrid:6.5,java:8,xpaas:1.2", - "version": "1.2" + "tags": "datagrid,jboss,xpaas", + "supports": "datagrid:6.5,xpaas:1.2", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-jboss", + "tags": "datagrid,jboss,xpaas", + "supports": "datagrid:6.5,xpaas:1.4", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + } + }, + { + "name": "1.4", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-jboss", + "tags": "datagrid,jboss,xpaas", + "supports":"datagrid:6.5,xpaas:1.4", + "version": "1.4" } } ] @@ -283,7 +418,35 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-datavirt63-openshift" + "name": "jboss-datagrid65-client-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 Client Modules for EAP" + } + }, + "spec": { + "dockerImageRepository": "registry.access.redhat.com/jboss-datagrid-6/datagrid65-client-openshift", + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Data Grid 6.5 Client Modules for EAP.", + "iconClass": "icon-jboss", + "tags": "client,jboss,xpaas", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 Client Modules for EAP" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datavirt63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-datavirt-6/datavirt63-openshift", @@ -293,9 +456,56 @@ "annotations": { "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", "iconClass": "icon-jboss", - "tags": "datavirt,java,jboss,xpaas", - "supports":"datavirt:6.3,java:8,xpaas:1.4", - "version": "1.0" + "tags": "datavirt,jboss,xpaas", + "supports": "datavirt:6.3,xpaas:1.4", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-jboss", + "tags": "datavirt,jboss,xpaas", + "supports": "datavirt:6.3,xpaas:1.4", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-jboss", + "tags": "datavirt,jboss,xpaas", + "supports":"datavirt:6.3,xpaas:1.4", + "version": "1.2" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datavirt63-driver-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP" + } + }, + "spec": { + "dockerImageRepository": "registry.access.redhat.com/jboss-datavirt-6/datavirt63-driver-openshift", + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP.", + "iconClass": "icon-jboss", + "tags": "client,jboss,xpaas", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP" } } ] @@ -305,7 +515,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-amq-62" + "name": "jboss-amq-62", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-amq-6/amq62-openshift", @@ -316,8 +529,9 @@ "description": "JBoss A-MQ 6.2 broker image.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "supports":"amq:6.2,messaging,xpaas:1.1", - "version": "1.1" + "supports": "amq:6.2,messaging,xpaas:1.1", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" } }, { @@ -326,8 +540,9 @@ "description": "JBoss A-MQ 6.2 broker image.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "supports":"amq:6.2,messaging,xpaas:1.2", - "version": "1.2" + "supports": "amq:6.2,messaging,xpaas:1.2", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" } }, { @@ -336,8 +551,19 @@ "description": "JBoss A-MQ 6.2 broker image.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "supports":"amq:6.2,messaging,xpaas:1.3", - "version": "1.3" + "supports": "amq:6.2,messaging,xpaas:1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + } + }, + { + "name": "1.4", + "annotations": { + "description": "JBoss A-MQ 6.2 broker image.", + "iconClass": "icon-jboss", + "tags": "messaging,amq,jboss,xpaas", + "supports":"amq:6.2,messaging,xpaas:1.4", + "version": "1.4" } } ] @@ -348,8 +574,9 @@ "apiVersion": "v1", "metadata": { "name": "redhat-sso70-openshift", - "annotations": { - "description": "Red Hat SSO 7.0" + "annotations": { + "description": "Red Hat SSO 7.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" } }, "spec": { @@ -361,8 +588,20 @@ "description": "Red Hat SSO 7.0", "iconClass": "icon-jboss", "tags": "sso,keycloak,redhat", - "supports":"sso:7.0,xpaas:1.3", - "version": "1.3" + "supports": "sso:7.0,xpaas:1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" + } + }, + { + "name": "1.4", + "annotations": { + "description": "Red Hat SSO 7.0", + "iconClass": "icon-jboss", + "tags": "sso,keycloak,redhat", + "supports": "sso:7.0,xpaas:1.4", + "version": "1.4", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" } } ] @@ -372,7 +611,48 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "redhat-openjdk18-openshift" + "name": "redhat-sso71-openshift", + "annotations": { + "description": "Red Hat SSO 7.1", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + } + }, + "spec": { + "dockerImageRepository": "registry.access.redhat.com/redhat-sso-7/sso71-openshift", + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat SSO 7.1", + "iconClass": "icon-jboss", + "tags": "sso,keycloak,redhat", + "supports": "sso:7.1,xpaas:1.4", + "version": "1.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat SSO 7.1", + "iconClass": "icon-jboss", + "tags": "sso,keycloak,redhat", + "supports": "sso:7.1,xpaas:1.4", + "version": "1.1", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redhat-openjdk18-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift", @@ -384,11 +664,24 @@ "description": "Build and run Java applications using Maven and OpenJDK 8.", "iconClass": "icon-jboss", "tags": "builder,java,xpaas,openjdk", - "supports":"java:8,xpaas:1.0", + "supports": "java:8,xpaas:1.0", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", "sampleContextDir": "undertow-servlet", "version": "1.0" } + }, + { + "name": "1.1", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-jboss", + "tags": "builder,java,xpaas,openjdk", + "supports": "java:8,xpaas:1.4", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "1.1" + } } ] } diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-basic.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-basic.json index ab35afead..af20b373a 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-basic.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-basic.json @@ -6,46 +6,54 @@ "description": "Application template for JBoss A-MQ brokers. These can be deployed as standalone or in a mesh. This template doesn't feature SSL support.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Ephemeral, no SSL)" }, "name": "amq62-basic" }, "labels": { "template": "amq62-basic", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -53,6 +61,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,18 +69,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -171,7 +183,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire port." + "description": "The broker's OpenWire port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"}]" } } }, @@ -202,7 +215,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-persistent-ssl.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-persistent-ssl.json index c12f06dec..5acdbfabf 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-persistent-ssl.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-persistent-ssl.json @@ -6,58 +6,68 @@ "description": "Application template for JBoss A-MQ brokers. These are deployed as standalone and use persistent storage for saving messages. This template supports SSL and requires usage of OpenShift secrets.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Persistent with SSL)" }, "name": "amq62-persistent-ssl" }, "labels": { "template": "amq62-persistent-ssl", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new persistent messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"amq-service-account\" service account and a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -65,6 +75,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -72,48 +83,56 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "Secret Name", "description": "Name of a secret containing SSL related files", "name": "AMQ_SECRET", "value": "amq-app-secret", "required": true }, { + "displayName": "Trust Store Filename", "description": "SSL trust store filename", "name": "AMQ_TRUSTSTORE", "value": "broker.ts", "required": true }, { + "displayName": "Trust Store Password", "description": "SSL trust store password", "name": "AMQ_TRUSTSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Keystore Filename", "description": "SSL key store filename", "name": "AMQ_KEYSTORE", "value": "broker.ks", "required": true }, { + "displayName": "A-MQ Keystore Password", "description": "Password for accessing SSL keystore", "name": "AMQ_KEYSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -309,7 +328,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire (SSL) port." + "description": "The broker's OpenWire (SSL) port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp-ssl\", \"kind\": \"Service\"}]" } } }, @@ -340,7 +360,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-persistent.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-persistent.json index 897ce0395..b8089cd6d 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-persistent.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-persistent.json @@ -6,58 +6,68 @@ "description": "Application template for JBoss A-MQ brokers. These can be deployed as standalone and use persistent storage for saving messages. This template doesn't feature SSL support.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Persistent, no SSL)" }, "name": "amq62-persistent" }, "labels": { "template": "amq62-persistent", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new persistent messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -65,6 +75,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -72,18 +83,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -183,7 +197,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire port." + "description": "The broker's OpenWire port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"}]" } } }, @@ -214,7 +229,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-ssl.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-ssl.json index 97d110286..b52fdbfb0 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-ssl.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/amq62-ssl.json @@ -6,46 +6,54 @@ "description": "Application template for JBoss A-MQ brokers. These can be deployed as standalone or in a mesh. This template supports SSL and requires usage of OpenShift secrets.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Ephemeral with SSL)" }, "name": "amq62-ssl" }, "labels": { "template": "amq62-ssl", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"amq-service-account\" service account and a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. SSL variants of these protocols will be configured automaticaly.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -53,6 +61,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,48 +69,56 @@ "required": false }, { + "displayName": "Secret Name", "description": "Name of a secret containing SSL related files", "name": "AMQ_SECRET", "value": "amq-app-secret", "required": true }, { + "displayName": "Trust Store Filename", "description": "SSL trust store filename", "name": "AMQ_TRUSTSTORE", "value": "broker.ts", "required": true }, { + "displayName": "Trust Store Password", "description": "SSL trust store password", "name": "AMQ_TRUSTSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Keystore Filename", "description": "SSL key store filename", "name": "AMQ_KEYSTORE", "value": "broker.ks", "required": true }, { + "displayName": "A-MQ Keystore Password", "description": "Password for accessing SSL keystore", "name": "AMQ_KEYSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -297,7 +314,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire (SSL) port." + "description": "The broker's OpenWire (SSL) port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp-ssl\", \"kind\": \"Service\"}]" } } }, @@ -328,7 +346,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-basic.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-basic.json index 56e76016f..32433bef0 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-basic.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-basic.json @@ -6,76 +6,103 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 applications.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 (Ephemeral, no https)" }, "name": "datagrid65-basic" }, "labels": { "template": "datagrid65-basic", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -200,7 +227,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -267,9 +294,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -301,6 +333,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-https.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-https.json index 639ac2e11..e6f020400 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-https.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-https.json @@ -6,130 +6,166 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 applications.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 (Ephemeral with https)" }, "name": "datagrid65-https" }, "labels": { "template": "datagrid65-https", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -301,7 +337,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -386,9 +422,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -436,6 +477,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-mysql-persistent.json index 22ca3f0a0..ff57a7936 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-mysql-persistent.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and MySQL applications with persistent storage.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + MySQL (Persistent with https)" }, "name": "datagrid65-mysql-persistent" }, "labels": { "template": "datagrid65-mysql-persistent", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using MySQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:/jboss/datasources/mysql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,117 +111,158 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -230,7 +286,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -254,7 +311,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -278,7 +336,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Memcached service for clustered applications." + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -302,7 +361,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Hot Rod service for clustered applications." + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -397,7 +457,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -482,9 +542,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -584,6 +649,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -669,7 +742,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-mysql.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-mysql.json index e1a585d24..44902de25 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-mysql.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-mysql.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and MySQL applications.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + MySQL (Ephemeral with https)" }, "name": "datagrid65-mysql" }, "labels": { "template": "datagrid65-mysql", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using MySQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:/jboss/datasources/mysql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,111 +111,151 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -224,7 +279,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -248,7 +304,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +329,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Memcached service for clustered applications." + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -296,7 +354,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Hot Rod service for clustered applications." + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -391,7 +450,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -476,9 +535,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -578,6 +642,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -663,7 +735,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-postgresql-persistent.json index 12720eb19..6b90e1370 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-postgresql-persistent.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and PostgreSQL applications with persistent storage.", "tags": "datagrid,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + PostgreSQL (Persistent with https)" }, "name": "datagrid65-postgresql-persistent" }, "labels": { "template": "datagrid65-postgresql-persistent", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using PostgreSQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/postgresql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,102 +111,140 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -215,7 +268,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -239,7 +293,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -382,7 +437,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -467,9 +522,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -569,6 +629,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -654,7 +722,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-postgresql.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-postgresql.json index da8015fb0..ae36376db 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-postgresql.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datagrid65-postgresql.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and PostgreSQL applications built using.", "tags": "datagrid,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + PostgreSQL (Ephemeral with https)" }, "name": "datagrid65-postgresql" }, "labels": { "template": "datagrid65-postgresql", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using PostgreSQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/postgresql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,96 +111,133 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configurd for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -209,7 +261,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -233,7 +286,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -376,7 +430,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -461,9 +515,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -563,6 +622,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -648,7 +715,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-basic-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-basic-s2i.json index 7d64dac98..ea2f13742 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-basic-s2i.json @@ -6,7 +6,8 @@ "iconClass": "icon-jboss", "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I.", "tags": "jdv,datavirt,jboss,xpaas", - "version": "1.4.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3 (no SSL)" }, "name": "datavirt63-basic-s2i" }, @@ -60,6 +61,7 @@ }, { "description": "The name of the service account to use for the deployment. The service account should be configured to allow usage of the secret specified by CONFIGURATION_NAME.", + "displayName": "Service Account Name", "name": "SERVICE_ACCOUNT_NAME", "value": "datavirt-service-account", "required": true @@ -133,6 +135,27 @@ "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -215,7 +238,22 @@ "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir": "${CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.0" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + } + ] }, "strategy": { "type": "Source", @@ -224,8 +262,26 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datavirt63-openshift:1.0" - } + "name": "jboss-datavirt63-openshift:1.2" + }, + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ] } }, "output": { @@ -251,6 +307,15 @@ "type": "ImageChange", "imageChange": {} }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.0" + } + } + }, { "type": "ConfigChange" } diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-extensions-support-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-extensions-support-s2i.json index 1e7c03b99..22b579ecc 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-extensions-support-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-extensions-support-s2i.json @@ -6,7 +6,8 @@ "iconClass": "icon-jboss", "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I. Includes support for installing extensions (e.g. third-party DB drivers) and the ability to configure certificates for serving secure content.", "tags": "jdv,datavirt,jboss,xpaas", - "version": "1.4.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3 (with SSL and Extensions)" }, "name": "datavirt63-extensions-support-s2i" }, @@ -102,6 +103,7 @@ }, { "description": "The name of the service account to use for the deployment. The service account should be configured to allow usage of the secret(s) specified by CONFIGURATION_NAME, HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "displayName": "Service Account Name", "name": "SERVICE_ACCOUNT_NAME", "value": "datavirt-service-account", "required": true @@ -238,6 +240,27 @@ "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -443,6 +466,19 @@ }, "contextDir": "${CONTEXT_DIR}", "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.0" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + }, { "from": { "kind": "ImageStreamTag", @@ -464,12 +500,24 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datavirt63-openshift:1.0" + "name": "jboss-datavirt63-openshift:1.2" }, "env": [ { "name": "CUSTOM_INSTALL_DIRECTORIES", "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ] } @@ -506,6 +554,15 @@ } } }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.0" + } + } + }, { "type": "ConfigChange" } @@ -713,7 +770,7 @@ }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE", - "value": "/etc/datavirt-secret-volume/${HTTPS_KEYSTORE}" + "value": "${HTTPS_KEYSTORE}" }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE_TYPE", diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-secure-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-secure-s2i.json index 07f926ff3..9392c20a6 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-secure-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/datavirt63-secure-s2i.json @@ -6,7 +6,8 @@ "iconClass": "icon-jboss", "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I. Includes ability to configure certificates for serving secure content.", "tags": "jdv,datavirt,jboss,xpaas", - "version": "1.4.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3 (with SSL)" }, "name": "datavirt63-secure-s2i" }, @@ -74,6 +75,7 @@ }, { "description": "The name of the service account to use for the deployment. The service account should be configured to allow usage of the secret(s) specified by CONFIGURATION_NAME, HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "displayName": "Service Account Name", "name": "SERVICE_ACCOUNT_NAME", "value": "datavirt-service-account", "required": true @@ -210,6 +212,168 @@ "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", + "displayName": "SSO Server URL", + "name": "SSO_URL", + "value": "", + "required": false + }, + { + "description": "The URL for the interal SSO service, where secure-sso is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "displayName": "SSO Server Service URL", + "name": "SSO_SERVICE_URL", + "value": "", + "required": false + }, + { + "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", + "displayName": "SSO Realm", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", + "displayName": "SSO Username", + "name": "SSO_USERNAME", + "value": "", + "required": false + }, + { + "description": "The password for the SSO service user.", + "displayName": "SSO User's Password", + "name": "SSO_PASSWORD", + "value": "", + "required": false + }, + { + "description": "SSO Realm Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability. This can be retrieved from the SSO server, for the specified realm.", + "displayName": "SSO Realm Public Key", + "name": "SSO_PUBLIC_KEY", + "value": "", + "required": false + }, + { + "description": "SSO Client Access Type. true or false", + "displayName": "SSO Bearer Only", + "name": "SSO_BEARER_ONLY", + "value": "", + "required": false + }, + { + "description": "The name of the secret containing the keystore file", + "displayName": "SSO SAML Keystore Secret", + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "datavirt-app-secret", + "required": false + }, + { + "description": "The name of the keystore file within the secret", + "displayName": "SSO SAML Keystore File", + "name": "SSO_SAML_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "description": "The name associated with the server certificate", + "displayName": "SSO SAML Certificate Alias", + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "", + "required": false + }, + { + "description": "The password for the keystore and certificate", + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "displayName": "SSO SAML Keystore Password", + "value": "", + "required": false + }, + { + "description": "The SSO Client Secret for Confidential Access", + "name": "SSO_SECRET", + "displayName": "SSO Client Secret", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "description": "Enable CORS for SSO applications. true or false", + "name": "SSO_ENABLE_CORS", + "displayName": "SSO Enable CORS", + "value": "false", + "required": false + }, + { + "description": "SSO logout page for SAML applications", + "name": "SSO_SAML_LOGOUT_PAGE", + "displayName": "SSO SAML Logout Page", + "value": "/", + "required": false + }, + { + "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "displayName": "SSO Disable SSL Certificate Validation", + "value": "true", + "required": false + }, + { + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "displayName": "SSO Truststore File", + "value": "", + "required": false + }, + { + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "displayName": "SSO Truststore Password", + "value": "", + "required": false + }, + { + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "displayName": "SSO Truststore Secret", + "value": "datavirt-app-secret", + "required": false + }, + { + "description": "Comma delimited list of deployments that shoulds be exploded and enabled for SSO OpenIDConnect via auth-method", + "name": "SSO_OPENIDCONNECT_DEPLOYMENTS", + "displayName": "SSO OpenIDConnect Deployments", + "value": "", + "required": false + }, + { + "description": "Comma delimited list of deployments that shoulds be exploded and enabled for SSO SAML via auth-method", + "name": "SSO_SAML_DEPLOYMENTS", + "displayName": "SSO SAML Deployments", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -354,7 +518,22 @@ "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir": "${CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.0" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + } + ] }, "strategy": { "type": "Source", @@ -363,8 +542,26 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datavirt63-openshift:1.0" - } + "name": "jboss-datavirt63-openshift:1.2" + }, + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ] } }, "output": { @@ -390,6 +587,15 @@ "type": "ImageChange", "imageChange": {} }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.0" + } + } + }, { "type": "ConfigChange" } @@ -597,7 +803,7 @@ }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE", - "value": "/etc/datavirt-secret-volume/${HTTPS_KEYSTORE}" + "value": "${HTTPS_KEYSTORE}" }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE_TYPE", @@ -610,6 +816,98 @@ { "name": "DATAVIRT_TRANSPORT_KEYSTORE_PASSWORD", "value": "${HTTPS_PASSWORD}" + }, + { + "name": "SSO_URL", + "value": "${SSO_URL}" + }, + { + "name": "SSO_SERVICE_URL", + "value": "${SSO_SERVICE_URL}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_USERNAME", + "value": "${SSO_USERNAME}" + }, + { + "name": "SSO_PASSWORD", + "value": "${SSO_PASSWORD}" + }, + { + "name": "SSO_PUBLIC_KEY", + "value": "${SSO_PUBLIC_KEY}" + }, + { + "name": "SSO_BEARER_ONLY", + "value": "${SSO_BEARER_ONLY}" + }, + { + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "${SSO_SAML_KEYSTORE_SECRET}" + }, + { + "name": "SSO_SAML_KEYSTORE", + "value": "${SSO_SAML_KEYSTORE}" + }, + { + "name": "SSO_SAML_KEYSTORE_DIR", + "value": "/etc/sso-saml-secret-volume" + }, + { + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "${SSO_SAML_CERTIFICATE_NAME}" + }, + { + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "value": "${SSO_SAML_KEYSTORE_PASSWORD}" + }, + { + "name": "SSO_SECRET", + "value": "${SSO_SECRET}" + }, + { + "name": "SSO_ENABLE_CORS", + "value": "${SSO_ENABLE_CORS}" + }, + { + "name": "SSO_SAML_LOGOUT_PAGE", + "value": "${SSO_SAML_LOGOUT_PAGE}" + }, + { + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "value": "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + }, + { + "name": "SSO_OPENIDCONNECT_DEPLOYMENTS", + "value": "${SSO_OPENIDCONNECT_DEPLOYMENTS}" + }, + { + "name": "SSO_SAML_DEPLOYMENTS", + "value": "${SSO_SAML_DEPLOYMENTS}" + }, + { + "name": "HOSTNAME_HTTP", + "value": "${HOSTNAME_HTTP}" + }, + { + "name": "HOSTNAME_HTTPS", + "value": "${HOSTNAME_HTTPS}" } ] } diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-amq-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-amq-s2i.json index 754a3b4c0..1989036fa 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-amq-s2i.json @@ -5,8 +5,9 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.2 decision server A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,amq,java,messaging,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.3.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server + A-MQ (with https)" }, "name": "decisionserver62-amq-s2i" }, @@ -14,20 +15,24 @@ "template": "decisionserver62-amq-s2i", "xpaas": "1.3.3" }, + "message": "A new BRMS/A-MQ application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "HelloRulesContainer=org.openshift.quickstarts:decisionserver-hellorules:1.2.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,102 +40,119 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -138,6 +160,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -145,18 +168,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -164,6 +190,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -171,6 +198,7 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -198,7 +226,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -222,7 +251,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -564,7 +594,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-basic-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-basic-s2i.json index 8be4ac90b..25b2c162c 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-basic-s2i.json @@ -5,8 +5,9 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.2 decision server applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.3.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server (no https)" }, "name": "decisionserver62-basic-s2i" }, @@ -14,20 +15,24 @@ "template": "decisionserver62-basic-s2i", "xpaas": "1.3.3" }, + "message": "A new BRMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "HelloRulesContainer=org.openshift.quickstarts:decisionserver-hellorules:1.2.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,48 +40,56 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -84,6 +97,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -91,6 +105,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -98,6 +113,7 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-https-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-https-s2i.json index bf9047599..85605d642 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver62-https-s2i.json @@ -5,8 +5,9 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.2 decision server HTTPS applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.3.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server (with https)" }, "name": "decisionserver62-https-s2i" }, @@ -14,32 +15,38 @@ "template": "decisionserver62-https-s2i", "xpaas": "1.3.3" }, + "message": "A new BRMS application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "HelloRulesContainer=org.openshift.quickstarts:decisionserver-hellorules:1.2.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,78 +54,91 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -126,6 +146,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +154,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -140,6 +162,7 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-amq-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-amq-s2i.json index 51e667e02..ecea54d94 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-amq-s2i.json @@ -5,29 +5,34 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.3 decision server A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,amq,java,messaging,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server + A-MQ (with https)" }, "name": "decisionserver63-amq-s2i" }, "labels": { "template": "decisionserver63-amq-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BRMS/A-MQ application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,108 +40,126 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -144,6 +167,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -151,18 +175,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,6 +197,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -177,10 +205,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -204,7 +246,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -228,7 +271,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -334,13 +378,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-decisionserver63-openshift:1.3" + "name": "jboss-decisionserver63-openshift:1.4" } } }, @@ -574,7 +626,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-basic-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-basic-s2i.json index c5f0d006a..d655dbe94 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-basic-s2i.json @@ -5,29 +5,34 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.3 decision server applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server (no https)" }, "name": "decisionserver63-basic-s2i" }, "labels": { "template": "decisionserver63-basic-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BRMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,48 +40,56 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -84,6 +97,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -91,6 +105,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -98,10 +113,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -184,13 +213,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-decisionserver63-openshift:1.3" + "name": "jboss-decisionserver63-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-https-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-https-s2i.json index 3db0e4c84..78e79c0cf 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/decisionserver63-https-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.3 decision server HTTPS applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server (with https)" }, "name": "decisionserver63-https-s2i" }, "labels": { "template": "decisionserver63-https-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BRMS application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,78 +54,91 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -126,6 +146,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +154,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -140,10 +162,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -273,13 +309,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-decisionserver63-openshift:1.3" + "name": "jboss-decisionserver63-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-amq-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-amq-persistent-s2i.json index 72dbb4302..912838175 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-amq-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-amq-persistent-s2i.json @@ -5,131 +5,153 @@ "annotations": { "description": "Application template for EAP 6 A-MQ applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + A-MQ (Persistent with https)" }, "name": "eap64-amq-persistent-s2i" }, "labels": { "template": "eap64-amq-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and A-MQ persistent based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -137,6 +159,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,18 +167,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +189,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,36 +197,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -207,10 +240,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -234,7 +281,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -258,7 +306,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -360,11 +409,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -641,7 +700,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-amq-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-amq-s2i.json index 9dd847451..dd4c7a27b 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-amq-s2i.json @@ -5,119 +5,139 @@ "annotations": { "description": "Application template for EAP 6 A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + A-MQ (Ephemeral with https)" }, "name": "eap64-amq-s2i" }, "labels": { "template": "eap64-amq-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and A-MQ based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +145,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,18 +153,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -151,6 +175,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -158,36 +183,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -195,10 +226,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -222,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -246,7 +292,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -348,11 +395,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -626,7 +683,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-basic-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-basic-s2i.json index 7b1800b7b..e13b3851b 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-basic-s2i.json @@ -6,58 +6,68 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 (no https)" }, "name": "eap64-basic-s2i" }, "labels": { "template": "eap64-basic-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 based application has been created in your project.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -65,6 +75,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -72,6 +83,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -79,12 +91,14 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -92,10 +106,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -174,11 +202,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-https-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-https-s2i.json index 31716d84c..0da32eb40 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-https-s2i.json @@ -6,100 +6,117 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 (with https)" }, "name": "eap64-https-s2i" }, "labels": { "template": "eap64-https-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,10 +183,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -287,11 +326,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mongodb-persistent-s2i.json index 212431056..77b75466d 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mongodb-persistent-s2i.json @@ -5,149 +5,175 @@ "annotations": { "description": "Application template for EAP 6 MongoDB applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MongoDB (Persistent with https)" }, "name": "eap64-mongodb-persistent-s2i" }, "labels": { "template": "eap64-mongodb-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MongoDB persistent based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -176,6 +205,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -183,6 +213,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -190,36 +221,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -227,10 +264,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -254,7 +312,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -278,7 +337,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -380,11 +440,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -674,7 +744,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mongodb-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mongodb-s2i.json index 13fbbdd93..2785782d4 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mongodb-s2i.json @@ -5,143 +5,168 @@ "annotations": { "description": "Application template for EAP 6 MongoDB applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MongoDB (Ephemeral with https)" }, "name": "eap64-mongodb-s2i" }, "labels": { "template": "eap64-mongodb-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -170,6 +198,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -177,6 +206,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -184,36 +214,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -221,10 +257,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -248,7 +305,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +330,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -374,11 +433,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -668,7 +737,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mysql-persistent-s2i.json index 69fdec206..cca0f9c2b 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mysql-persistent-s2i.json @@ -5,159 +5,187 @@ "annotations": { "description": "Application template for EAP 6 MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MySQL (Persistent with https)" }, "name": "eap64-mysql-persistent-s2i" }, "labels": { "template": "eap64-mysql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MySQL persistent based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +193,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -172,6 +201,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -179,6 +209,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -186,6 +217,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -193,36 +225,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -230,10 +268,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -257,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -281,7 +341,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -383,11 +444,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -681,7 +752,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mysql-s2i.json index 2bd3c249f..5766506fd 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-mysql-s2i.json @@ -5,153 +5,180 @@ "annotations": { "description": "Application template for EAP 6 MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MySQL (Ephemeral with https)" }, "name": "eap64-mysql-s2i" }, "labels": { "template": "eap64-mysql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +186,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -166,6 +194,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -173,6 +202,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -180,6 +210,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -187,36 +218,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -224,10 +261,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -251,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -275,7 +334,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -377,11 +437,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -675,7 +745,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-postgresql-persistent-s2i.json index 31f245950..01891774d 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-postgresql-persistent-s2i.json @@ -5,144 +5,169 @@ "annotations": { "description": "Application template for EAP 6 PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + PostgreSQL (Persistent with https)" }, "name": "eap64-postgresql-persistent-s2i" }, "labels": { "template": "eap64-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and PostgreSQL persistent based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -150,6 +175,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -157,6 +183,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -164,6 +191,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -171,6 +199,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -178,36 +207,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -215,10 +250,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -242,7 +298,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -266,7 +323,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -368,11 +426,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -666,7 +734,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-postgresql-s2i.json index eac964697..e00f2b0e3 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-postgresql-s2i.json @@ -5,138 +5,162 @@ "annotations": { "description": "Application template for EAP 6 PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + PostgreSQL (Ephemeral with https)" }, "name": "eap64-postgresql-s2i" }, "labels": { "template": "eap64-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,6 +168,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -151,6 +176,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,6 +184,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +192,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -172,36 +200,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -209,10 +243,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -236,7 +291,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -260,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -362,11 +419,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -660,7 +727,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-sso-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-sso-s2i.json index 09023be71..ec0739d04 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-sso-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-sso-s2i.json @@ -3,103 +3,120 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-jboss", + "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I, enabled for SSO.", - "tags": "eap,javaee,java,jboss,xpaas,sso,keycloak", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + Single Sign-On (with https)" }, "name": "eap64-sso-s2i" }, "labels": { "template": "eap64-sso-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 based application with SSL and SSO support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Hostname for http service route (e.g. eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTP", "value": "", "required": true }, { + "displayName": "Custom https Route Hostname", "description": "Hostname for https service route (e.g. secure-eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTPS", "value": "", "required": true }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/redhat-developer/redhat-sso-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.x-ose", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,84 +183,98 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false }, { + "displayName": "URL for SSO", "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", "name": "SSO_URL", "value": "", "required": true }, { - "description": "The URL for the interal SSO service, where secure-sso is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "displayName": "URL for SSO (internal service)", + "description": "The URL for the internal SSO service, where secure-sso is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", "name": "SSO_SERVICE_URL", "value": "https://secure-sso:8443/auth", "required": false }, { + "displayName": "SSO Realm", "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", "name": "SSO_REALM", "value": "", "required": true }, { + "displayName": "SSO Username", "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", "name": "SSO_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Password", "description": "The password for the SSO service user.", "name": "SSO_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Public Key", "description": "SSO Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability. This can be retrieved from the SSO server, for the specified realm.", "name": "SSO_PUBLIC_KEY", "value": "", "required": false }, { + "displayName": "SSO Bearer Only?", "description": "SSO Client Access Type", "name": "SSO_BEARER_ONLY", "value": "", "required": false }, { + "displayName": "Artifact Directories", "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", "name": "ARTIFACT_DIR", "value": "app-jee-jsp/target,service-jee-jaxrs/target,app-profile-jee-jsp/target,app-profile-saml-jee-jsp/target", "required": false }, { + "displayName": "SSO SAML Keystore Secret", "description": "The name of the secret containing the keystore file", "name": "SSO_SAML_KEYSTORE_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "SSO SAML Keystore", "description": "The name of the keystore file within the secret", "name": "SSO_SAML_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "SSO SAML Certificate Name", "description": "The name associated with the server certificate", "name": "SSO_SAML_CERTIFICATE_NAME", "value": "jboss", "required": false }, { + "displayName": "SSO SAML Keystore Password", "description": "The password for the keystore and certificate", "name": "SSO_SAML_KEYSTORE_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "SSO Client Secret", "description": "The SSO Client Secret for Confidential Access", "name": "SSO_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -243,42 +282,55 @@ "required": true }, { + "displayName": "Enable CORS for SSO?", "description": "Enable CORS for SSO applications", "name": "SSO_ENABLE_CORS", "value": "false", "required": false }, { + "displayName": "SSO SAML Logout Page", "description": "SSO logout page for SAML applications", "name": "SSO_SAML_LOGOUT_PAGE", "value": "/", "required": false }, { + "displayName": "Disable SSL Validation in EAP->SSO communication", "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", "value": "true", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "eap-app-secret", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false } - ], + ], "objects": [ { "kind": "Service", @@ -406,7 +458,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" }, "env": [ { @@ -416,6 +468,10 @@ { "name": "MAVEN_ARGS_APPEND", "value": "" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" } ] } @@ -615,7 +671,7 @@ "name": "HORNETQ_TOPICS", "value": "${HORNETQ_TOPICS}" }, - { + { "name": "JGROUPS_ENCRYPT_SECRET", "value": "${JGROUPS_ENCRYPT_SECRET}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-third-party-db-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-third-party-db-s2i.json new file mode 100644 index 000000000..e8f6d6585 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap64-third-party-db-s2i.json @@ -0,0 +1,646 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-jboss", + "description": "Application template for EAP 6 DB applications built using S2I. Includes support for installing third-party DB drivers.", + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 (with https, supporting third-party DB drivers)" + }, + "name": "eap64-third-party-db-s2i" + }, + "labels": { + "template": "eap64-third-party-db-s2i", + "xpaas": "1.4.0" + }, + "message": "A new EAP 6 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets:\"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed application(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Configuration Secret Name", + "description": "The name of the secret containing configuration properties for the datasources.", + "name": "CONFIGURATION_NAME", + "value": "eap-app-config", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "datavirt/hibernate-webapp", + "required": false + }, + { + "displayName": "Drivers ImageStreamTag", + "description": "ImageStreamTag definition for the image containing the drivers and configuration, e.g. jboss-datavirt63-openshift:1.0-driver", + "name": "EXTENSIONS_IMAGE", + "value": "jboss-datavirt63-driver-openshift:1.0", + "required": true + }, + { + "displayName": "Drivers ImageStream Namespace", + "description": "Namespace within which the ImageStream definition for the image containing the drivers and configuration is located.", + "name": "EXTENSIONS_IMAGE_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Drivers Image Install Directory", + "description": "Full path to the directory within the extensions image where the extensions are located (e.g. install.sh, modules/, etc.)", + "name": "EXTENSIONS_INSTALL_DIR", + "value": "/extensions", + "required": true + }, + { + "displayName": "Queue Names", + "description": "Queue names to preconfigure within HornetQ subsystem.", + "name": "HORNETQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topic Names", + "description": "Topic names to preconfigure within HornetQ subsystem.", + "name": "HORNETQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "eap-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "HornetQ Cluster Admin Password", + "description": "Admin password for HornetQ cluster.", + "name": "HORNETQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "A secret string used to configure the GitHub webhook.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore to be used for securing JGroups communications.", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the JGroups secret.", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the JGroups server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "secret-key", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "password", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/extras", + "sourcePath": "${EXTENSIONS_INSTALL_DIR}/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.5" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/eap-environment", + "readOnly": true + }, + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "ENV_FILES", + "value": "/etc/eap-environment/*" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "HORNETQ_CLUSTER_PASSWORD", + "value": "${HORNETQ_CLUSTER_PASSWORD}" + }, + { + "name": "HORNETQ_QUEUES", + "value": "${HORNETQ_QUEUES}" + }, + { + "name": "HORNETQ_TOPICS", + "value": "${HORNETQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + }, + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-amq-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-amq-persistent-s2i.json index f08cdf2f9..3f0eba6e3 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-amq-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-amq-persistent-s2i.json @@ -5,131 +5,153 @@ "annotations": { "description": "Application template for EAP 7 A-MQ applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + A-MQ (Persistent with https)" }, "name": "eap70-amq-persistent-s2i" }, "labels": { "template": "eap70-amq-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and A-MQ persistent based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -137,6 +159,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,18 +167,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +189,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,36 +197,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -207,10 +240,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -234,7 +281,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -258,7 +306,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -360,11 +409,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -641,7 +700,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-amq-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-amq-s2i.json index 3ca9e9fab..f2d65f353 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-amq-s2i.json @@ -5,119 +5,139 @@ "annotations": { "description": "Application template for EAP 7 A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + A-MQ (with https)" }, "name": "eap70-amq-s2i" }, "labels": { "template": "eap70-amq-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and A-MQ based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +145,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,18 +153,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -151,6 +175,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -158,36 +183,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -195,10 +226,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -222,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -246,7 +292,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -348,11 +395,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -626,7 +683,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-basic-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-basic-s2i.json index 83b4d5b24..c33e3f7cb 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-basic-s2i.json @@ -6,58 +6,68 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 7 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 (no https)" }, "name": "eap70-basic-s2i" }, "labels": { "template": "eap70-basic-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 based application has been created in your project.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.0.GA", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -65,6 +75,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -72,6 +83,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -79,12 +91,14 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -92,10 +106,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -174,11 +202,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-https-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-https-s2i.json index 1292442a4..7542d31c8 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-https-s2i.json @@ -6,100 +6,117 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 7 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 (with https)" }, "name": "eap70-https-s2i" }, "labels": { "template": "eap70-https-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.0.GA", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,10 +183,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -287,11 +326,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mongodb-persistent-s2i.json index 99db77d58..8a7da66c1 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mongodb-persistent-s2i.json @@ -5,149 +5,175 @@ "annotations": { "description": "Application template for EAP 7 MongoDB applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MongoDB (Persistent with https)" }, "name": "eap70-mongodb-persistent-s2i" }, "labels": { "template": "eap70-mongodb-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MongoDB persistent based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -176,6 +205,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -183,6 +213,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -190,36 +221,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -227,10 +264,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -254,7 +312,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -278,7 +337,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -380,11 +440,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -685,7 +755,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mongodb-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mongodb-s2i.json index c8150c231..ae52a3deb 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mongodb-s2i.json @@ -5,143 +5,168 @@ "annotations": { "description": "Application template for EAP 7 MongoDB applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MongoDB (Ephemeral with https)" }, "name": "eap70-mongodb-s2i" }, "labels": { "template": "eap70-mongodb-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -170,6 +198,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -177,6 +206,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -184,36 +214,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -221,10 +257,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -248,7 +305,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +330,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -374,11 +433,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -679,7 +748,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mysql-persistent-s2i.json index f8e5c2b04..a0a3d7717 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mysql-persistent-s2i.json @@ -5,159 +5,187 @@ "annotations": { "description": "Application template for EAP 7 MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MySQL (Persistent with https)" }, "name": "eap70-mysql-persistent-s2i" }, "labels": { "template": "eap70-mysql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MySQL persistent based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +193,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -172,6 +201,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -179,6 +209,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -186,6 +217,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -193,36 +225,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -230,10 +268,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -257,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -281,7 +341,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -383,11 +444,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -696,7 +767,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mysql-s2i.json index 1edeb62e7..8255ade5d 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-mysql-s2i.json @@ -5,153 +5,180 @@ "annotations": { "description": "Application template for EAP 7 MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MySQL (Ephemeral with https)" }, "name": "eap70-mysql-s2i" }, "labels": { "template": "eap70-mysql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +186,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -166,6 +194,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -173,6 +202,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -180,6 +210,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -187,36 +218,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -224,10 +261,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -251,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -275,7 +334,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -377,11 +437,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -690,7 +760,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-postgresql-persistent-s2i.json index d11df06ee..436c541d8 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-postgresql-persistent-s2i.json @@ -5,144 +5,169 @@ "annotations": { "description": "Application template for EAP 7 PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + PostgreSQL (Persistent with https)" }, "name": "eap70-postgresql-persistent-s2i" }, "labels": { "template": "eap70-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and PostgreSQL persistent based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -150,6 +175,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -157,6 +183,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -164,6 +191,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -171,6 +199,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -178,36 +207,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -215,10 +250,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -242,7 +298,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -266,7 +323,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -368,11 +426,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -681,7 +749,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-postgresql-s2i.json index 6b7f6d707..a2a37a886 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-postgresql-s2i.json @@ -5,138 +5,162 @@ "annotations": { "description": "Application template for EAP 7 PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + PostgreSQL (Ephemeral with https)" }, "name": "eap70-postgresql-s2i" }, "labels": { "template": "eap70-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,6 +168,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -151,6 +176,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,6 +184,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +192,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -172,36 +200,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -209,10 +243,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -236,7 +291,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -260,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -362,11 +419,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -675,7 +742,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-sso-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-sso-s2i.json index 811602220..08a844cd9 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-sso-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-sso-s2i.json @@ -3,103 +3,120 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-jboss", + "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I, enabled for SSO.", - "tags": "eap,javaee,java,jboss,xpaas,sso,keycloak", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + Single Sign-On (with https)" }, "name": "eap70-sso-s2i" }, "labels": { "template": "eap70-sso-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 based application with SSL and SSO support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Hostname for http service route (e.g. eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTP", "value": "", "required": true }, { + "displayName": "Custom https Route Hostname", "description": "Hostname for https service route (e.g. secure-eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTPS", "value": "", "required": true }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/redhat-developer/redhat-sso-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.x-ose", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,84 +183,98 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false }, { + "displayName": "URL for SSO", "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", "name": "SSO_URL", "value": "", "required": true }, { - "description": "The URL for the interal SSO service, where secure-sso (the default) is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "displayName": "URL for SSO (internal service)", + "description": "The URL for the internal SSO service, where secure-sso (the default) is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", "name": "SSO_SERVICE_URL", "value": "https://secure-sso:8443/auth", "required": false }, { + "displayName": "SSO Realm", "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", "name": "SSO_REALM", "value": "", "required": true }, { + "displayName": "SSO Username", "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", "name": "SSO_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Password", "description": "The password for the SSO service user.", "name": "SSO_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Public Key", "description": "SSO Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability", "name": "SSO_PUBLIC_KEY", "value": "", "required": false }, { + "displayName": "SSO Bearer Only?", "description": "SSO Client Access Type", "name": "SSO_BEARER_ONLY", "value": "", "required": false }, { + "displayName": "Artifact Directories", "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", "name": "ARTIFACT_DIR", "value": "app-jee-jsp/target,service-jee-jaxrs/target,app-profile-jee-jsp/target,app-profile-saml-jee-jsp/target", "required": false }, { + "displayName": "SSO SAML Keystore Secret", "description": "The name of the secret containing the keystore file", "name": "SSO_SAML_KEYSTORE_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "SSO SAML Keystore", "description": "The name of the keystore file within the secret", "name": "SSO_SAML_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "SSO SAML Certificate Name", "description": "The name associated with the server certificate", "name": "SSO_SAML_CERTIFICATE_NAME", "value": "jboss", "required": false }, { + "displayName": "SSO SAML Keystore Password", "description": "The password for the keystore and certificate", "name": "SSO_SAML_KEYSTORE_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "SSO Client Secret", "description": "The SSO Client Secret for Confidential Access", "name": "SSO_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -243,42 +282,55 @@ "required": true }, { + "displayName": "Enable CORS for SSO?", "description": "Enable CORS for SSO applications", "name": "SSO_ENABLE_CORS", "value": "false", "required": false }, { + "displayName": "SSO SAML Logout Page", "description": "SSO logout page for SAML applications", "name": "SSO_SAML_LOGOUT_PAGE", "value": "/", "required": false }, { + "displayName": "Disable SSL Validation in EAP->SSO communication", "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", "value": "true", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "eap7-app-secret", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false } - ], + ], "objects": [ { "kind": "Service", @@ -406,7 +458,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" }, "env": [ { @@ -416,6 +468,10 @@ { "name": "MAVEN_ARGS_APPEND", "value": "" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" } ] } @@ -593,7 +649,7 @@ { "name": "HOSTNAME_HTTPS", "value": "${HOSTNAME_HTTPS}" - }, + }, { "name": "HTTPS_KEYSTORE_DIR", "value": "/etc/eap-secret-volume" @@ -626,7 +682,7 @@ "name": "HORNETQ_TOPICS", "value": "${HORNETQ_TOPICS}" }, - { + { "name": "JGROUPS_ENCRYPT_SECRET", "value": "${JGROUPS_ENCRYPT_SECRET}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-third-party-db-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-third-party-db-s2i.json new file mode 100644 index 000000000..9e854d7ab --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/eap70-third-party-db-s2i.json @@ -0,0 +1,657 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-jboss", + "description": "Application template for EAP 7 DB applications built using S2I. Includes support for installing third-party DB drivers.", + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 (with https, supporting third-party DB drivers)" + }, + "name": "eap70-third-party-db-s2i" + }, + "labels": { + "template": "eap70-third-party-db-s2i", + "xpaas": "1.4.0" + }, + "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets:\"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed application(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Configuration Secret Name", + "description": "The name of the secret containing configuration properties for the datasources.", + "name": "CONFIGURATION_NAME", + "value": "eap-app-config", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "datavirt/hibernate-webapp", + "required": false + }, + { + "displayName": "Drivers ImageStreamTag", + "description": "ImageStreamTag definition for the image containing the drivers and configuration, e.g. jboss-datavirt63-openshift:1.0-driver", + "name": "EXTENSIONS_IMAGE", + "value": "jboss-datavirt63-driver-openshift:1.0", + "required": true + }, + { + "displayName": "Drivers ImageStream Namespace", + "description": "Namespace within which the ImageStream definition for the image containing the drivers and configuration is located.", + "name": "EXTENSIONS_IMAGE_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Drivers Image Install Directory", + "description": "Full path to the directory within the extensions image where the extensions are located (e.g. install.sh, modules/, etc.)", + "name": "EXTENSIONS_INSTALL_DIR", + "value": "/extensions", + "required": true + }, + { + "displayName": "Queue Names", + "description": "Queue names to preconfigure within Messaging subsystem.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topic Names", + "description": "Topic names to preconfigure within Messaging subsystem.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "eap-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Messaging Cluster Admin Password", + "description": "Admin password for Messaging cluster.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "A secret string used to configure the GitHub webhook.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore to be used for securing JGroups communications.", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the JGroups secret.", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the JGroups server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "secret-key", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "password", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/extras", + "sourcePath": "${EXTENSIONS_INSTALL_DIR}/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap70-openshift:1.5" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/eap-environment", + "readOnly": true + }, + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "ENV_FILES", + "value": "/etc/eap-environment/*" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + }, + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-basic-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-basic-s2i.json index 413a6de87..4e42e0eca 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-basic-s2i.json @@ -6,46 +6,54 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat7,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 (no https)" }, "name": "jws30-tomcat7-basic-s2i" }, "labels": { "template": "jws30-tomcat7-basic-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -53,6 +61,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,6 +69,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -67,6 +77,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -74,10 +85,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -156,11 +181,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -248,7 +283,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-https-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-https-s2i.json index 610ea9441..f5fc2e581 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-https-s2i.json @@ -6,76 +6,89 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat7,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 (with https)" }, "name": "jws30-tomcat7-https-s2i" }, "labels": { "template": "jws30-tomcat7-https-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -83,6 +96,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -90,6 +104,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -97,6 +112,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -104,10 +120,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -233,11 +263,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -326,7 +366,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json index 6ef9d6e4c..2a73a182c 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json @@ -5,125 +5,147 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat7,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MongoDB (Persistent with https)" }, "name": "jws30-tomcat7-mongodb-persistent-s2i" }, "labels": { "template": "jws30-tomcat7-mongodb-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 7 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -131,6 +153,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -138,6 +161,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -145,6 +169,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -152,6 +177,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +185,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -166,6 +193,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -173,10 +201,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -200,7 +249,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -224,7 +274,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -326,11 +377,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -419,7 +480,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -547,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mongodb-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mongodb-s2i.json index 9b48f8ae7..a71dfa634 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mongodb-s2i.json @@ -5,119 +5,140 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications built using S2I.", - "tags": "tomcat,tomcat7,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MongoDB (Ephemeral with https)" }, "name": "jws30-tomcat7-mongodb-s2i" }, "labels": { "template": "jws30-tomcat7-mongodb-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +146,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,6 +154,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -139,6 +162,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -146,6 +170,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -153,6 +178,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -160,6 +186,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -167,10 +194,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -194,7 +242,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -218,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -320,11 +370,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -413,7 +473,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -541,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json index 30af703ce..9a05dcbd5 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json @@ -5,135 +5,159 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat7,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MySQL (Persistent with https)" }, "name": "jws30-tomcat7-mysql-persistent-s2i" }, "labels": { "template": "jws30-tomcat7-mysql-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 7 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -141,6 +165,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +173,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -176,10 +205,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -203,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -227,7 +278,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -329,11 +381,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -422,7 +484,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -546,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mysql-s2i.json index c2843af63..553a30a44 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-mysql-s2i.json @@ -5,129 +5,152 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications built using S2I.", - "tags": "tomcat,tomcat7,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MySQL (Ephemeral with https)" }, "name": "jws30-tomcat7-mysql-s2i" }, "labels": { "template": "jws30-tomcat7-mysql-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -135,6 +158,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -142,6 +166,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,10 +198,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -197,7 +246,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -221,7 +271,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -323,11 +374,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -416,7 +477,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -540,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json index b8372f374..a5c6c8a56 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json @@ -5,120 +5,141 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat7,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + PostgreSQL (Persistent with https)" }, "name": "jws30-tomcat7-postgresql-persistent-s2i" }, "labels": { "template": "jws30-tomcat7-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 7 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -126,6 +147,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +155,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -140,6 +163,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -147,6 +171,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -154,6 +179,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -161,10 +187,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -188,7 +235,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -212,7 +260,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -314,11 +363,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -407,7 +466,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -531,7 +590,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-postgresql-s2i.json index cd5bb9fa4..61a3208e4 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat7-postgresql-s2i.json @@ -5,114 +5,134 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications built using S2I.", - "tags": "tomcat,tomcat7,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + PostgreSQL (Ephemeral with https)" }, "name": "jws30-tomcat7-postgresql-s2i" }, "labels": { "template": "jws30-tomcat7-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -120,6 +140,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -127,6 +148,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -134,6 +156,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -141,6 +164,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +172,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -155,10 +180,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -182,7 +228,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -206,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -308,11 +356,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -401,7 +459,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -525,7 +583,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-basic-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-basic-s2i.json index cb1e49d29..75d08e99d 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-basic-s2i.json @@ -6,46 +6,54 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat8,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 (no https)" }, "name": "jws30-tomcat8-basic-s2i" }, "labels": { "template": "jws30-tomcat8-basic-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -53,6 +61,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,6 +69,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -67,6 +77,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -74,10 +85,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -156,11 +181,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -248,7 +283,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-https-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-https-s2i.json index 21d5662c7..71577bec4 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-https-s2i.json @@ -6,76 +6,89 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat8,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 (with https)" }, "name": "jws30-tomcat8-https-s2i" }, "labels": { "template": "jws30-tomcat8-https-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -83,6 +96,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -90,6 +104,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -97,6 +112,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -104,10 +120,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -233,11 +263,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -326,7 +366,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json index 34657d826..de86dd83e 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json @@ -5,125 +5,147 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat8,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MongoDB (Persistent with https)" }, "name": "jws30-tomcat8-mongodb-persistent-s2i" }, + "message": "A new persistent JWS application for Tomcat 8 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "labels": { "template": "jws30-tomcat8-mongodb-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -131,6 +153,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -138,6 +161,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -145,6 +169,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -152,6 +177,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +185,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -166,6 +193,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -173,10 +201,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -200,7 +249,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -224,7 +274,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -326,11 +377,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -419,7 +480,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -547,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mongodb-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mongodb-s2i.json index 974cfaddb..6dc85e226 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mongodb-s2i.json @@ -5,119 +5,140 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications built using S2I.", - "tags": "tomcat,tomcat8,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MongoDB (Ephemeral with https)" }, "name": "jws30-tomcat8-mongodb-s2i" }, "labels": { "template": "jws30-tomcat8-mongodb-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +146,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,6 +154,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -139,6 +162,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -146,6 +170,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -153,6 +178,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -160,6 +186,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -167,10 +194,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -194,7 +242,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -218,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -320,11 +370,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -413,7 +473,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -541,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json index 7a8231cc5..0e96b58a9 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json @@ -5,135 +5,159 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat8,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MySQL (Persistent with https)" }, "name": "jws30-tomcat8-mysql-persistent-s2i" }, "labels": { "template": "jws30-tomcat8-mysql-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 8 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -141,6 +165,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +173,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -176,10 +205,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -203,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -227,7 +278,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -329,11 +381,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -422,7 +484,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -546,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mysql-s2i.json index cda21f237..08b040863 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-mysql-s2i.json @@ -5,129 +5,152 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications built using S2I.", - "tags": "tomcat,tomcat8,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MySQL (Ephemeral with https)" }, "name": "jws30-tomcat8-mysql-s2i" }, "labels": { "template": "jws30-tomcat8-mysql-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -135,6 +158,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -142,6 +166,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,10 +198,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -197,7 +246,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -221,7 +271,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -323,11 +374,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -416,7 +477,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -540,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json index 4dfc98015..f117e6624 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json @@ -5,120 +5,141 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat8,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + PostgreSQL (Persistent with https)" }, "name": "jws30-tomcat8-postgresql-persistent-s2i" }, "labels": { "template": "jws30-tomcat8-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 8 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -126,6 +147,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +155,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -140,6 +163,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -147,6 +171,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -154,6 +179,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -161,10 +187,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -188,7 +235,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -212,7 +260,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -314,11 +363,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -407,7 +466,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -531,7 +590,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-postgresql-s2i.json index f6c85668c..faece1269 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/jws30-tomcat8-postgresql-s2i.json @@ -5,114 +5,134 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications built using S2I.", - "tags": "tomcat,tomcat8,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + (PostgreSQL with https)" }, "name": "jws30-tomcat8-postgresql-s2i" }, "labels": { "template": "jws30-tomcat8-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -120,6 +140,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -127,6 +148,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -134,6 +156,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -141,6 +164,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +172,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -155,10 +180,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -182,7 +228,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -206,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -308,11 +356,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -400,7 +458,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -524,7 +582,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/openjdk18-web-basic-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/openjdk18-web-basic-s2i.json index 143e16756..a48e204ae 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/openjdk18-web-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/openjdk18-web-basic-s2i.json @@ -6,13 +6,14 @@ "iconClass": "icon-jboss", "description": "Application template for Java applications built using S2I.", "tags": "java,xpaas", - "version": "1.0.0" + "version": "1.1.0", + "openshift.io/display-name": "Red Hat OpenJDK 8" }, "name": "openjdk18-web-basic-s2i" }, "labels": { "template": "openjdk18-web-basic-s2i", - "xpaas": "1.0.0" + "xpaas": "1.4.0" }, "message": "A new java application has been created in your project.", "parameters": [ @@ -155,7 +156,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-openjdk18-openshift:1.0" + "name": "redhat-openjdk18-openshift:1.1" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json index 1dea463ac..d1705c88c 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + MySQL (Persistent with https)" }, "name": "processserver63-amq-mysql-persistent-s2i" }, "labels": { "template": "processserver63-amq-mysql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using MySQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,144 +54,168 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -192,6 +223,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -199,46 +231,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -246,6 +287,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -253,18 +295,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -272,6 +317,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -279,10 +325,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -306,7 +373,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -330,7 +398,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -460,13 +529,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -788,7 +865,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, @@ -919,7 +996,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-mysql-s2i.json index 42264585b..665cb76a3 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-mysql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + MySQL (Ephemeral with https)" }, "name": "processserver63-amq-mysql-s2i" }, "labels": { "template": "processserver63-amq-mysql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using MySQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,132 +54,154 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -180,6 +209,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -187,46 +217,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -234,6 +273,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -241,18 +281,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -260,6 +303,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -267,10 +311,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -294,7 +359,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -318,7 +384,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -448,13 +515,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -740,7 +815,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, @@ -837,7 +912,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json index f6d0c99ed..5a395a0f3 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + PostgreSQL (Persistent with https)" }, "name": "processserver63-amq-postgresql-persistent-s2i" }, "labels": { "template": "processserver63-amq-postgresql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using PostgreSQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,144 +54,168 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -192,6 +223,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -199,31 +231,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -231,6 +269,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -238,18 +277,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -257,6 +299,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -264,10 +307,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -291,7 +355,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -315,7 +380,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -445,13 +511,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -773,7 +847,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, @@ -892,7 +966,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-postgresql-s2i.json index 41c726cf0..e7c5efdc9 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-amq-postgresql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + PostgreSQL (Ephemeral with https)" }, "name": "processserver63-amq-postgresql-s2i" }, "labels": { "template": "processserver63-amq-postgresql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using PostgreSQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,132 +54,154 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -180,6 +209,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -187,31 +217,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -219,6 +255,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -226,18 +263,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -245,6 +285,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -252,10 +293,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -279,7 +341,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -303,7 +366,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -433,13 +497,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -725,7 +797,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, @@ -810,7 +882,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-basic-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-basic-s2i.json index 170c919cb..e70d20a6e 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-basic-s2i.json @@ -5,29 +5,34 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,javaee,java,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server (no https)" }, "name": "processserver63-basic-s2i" }, "labels": { "template": "processserver63-basic-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,54 +40,63 @@ "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.H2Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -90,6 +104,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -97,6 +112,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -104,10 +120,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -190,13 +220,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-mysql-persistent-s2i.json index 89d0db1a6..f76b07b0b 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-mysql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + MySQL (Persistent with https)" }, "name": "processserver63-mysql-persistent-s2i" }, "labels": { "template": "processserver63-mysql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using MySQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,108 +54,126 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +181,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,46 +189,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -210,6 +245,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -217,6 +253,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -224,10 +261,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -251,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -275,7 +334,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -381,13 +441,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -681,7 +749,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-mysql-s2i.json index 26cab29f8..a3be02eab 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-mysql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + MySQL (Ephemeral with https)" }, "name": "processserver63-mysql-s2i" }, "labels": { "template": "processserver63-mysql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using MySQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,102 +54,119 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -150,6 +174,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -157,46 +182,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -204,6 +238,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -211,6 +246,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -218,10 +254,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -245,7 +302,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -269,7 +327,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -375,13 +434,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -639,7 +706,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-postgresql-persistent-s2i.json index 32a512829..361b177f9 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-postgresql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + PostgreSQL (Persistent with https)" }, "name": "processserver63-postgresql-persistent-s2i" }, "labels": { "template": "processserver63-postgresql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using PostgreSQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,108 +54,126 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +181,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,31 +189,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -195,6 +227,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -202,6 +235,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -209,10 +243,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -236,7 +291,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -260,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -366,13 +423,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -666,7 +731,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-postgresql-s2i.json index 55e2199bb..451915a1d 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/processserver63-postgresql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + PostgreSQL (Ephemeral with https)" }, "name": "processserver63-postgresql-s2i" }, "labels": { "template": "processserver63-postgresql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using PostgreSQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,102 +54,119 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -150,6 +174,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -157,31 +182,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -189,6 +220,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -196,6 +228,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -203,10 +236,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -230,7 +284,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -254,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -360,13 +416,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -624,7 +688,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-https.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-https.json index fb0578a67..5e956f449 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-https.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-https.json @@ -5,110 +5,129 @@ "annotations": { "description": "Application template for SSO 7.0", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,java,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" }, "name": "sso70-https" }, "labels": { "template": "sso70-https", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new SSO service has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -116,54 +135,65 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", @@ -283,10 +313,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-mysql-persistent.json index dcbb24bf1..0fb2703c7 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-mysql-persistent.json @@ -5,123 +5,145 @@ "annotations": { "description": "Application template for SSO 7.0 MySQL applications with persistent storage", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,mysql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + MySQL (Persistent)" }, "name": "sso70-mysql-persistent" }, "labels": { "template": "sso70-mysql-persistent", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -129,6 +151,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -136,36 +159,42 @@ "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -173,58 +202,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -248,7 +295,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +320,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -364,10 +413,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -639,7 +688,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-mysql.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-mysql.json index 1768f7a1b..9beae806b 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-mysql.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-mysql.json @@ -5,123 +5,145 @@ "annotations": { "description": "Application template for SSO 7.0 MySQL applications", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,mysql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + MySQL (Ephemeral)" }, "name": "sso70-mysql" }, "labels": { "template": "sso70-mysql", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -129,6 +151,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -136,30 +159,35 @@ "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -167,58 +195,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -240,10 +286,11 @@ "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}", - "component": "server" + "component": "server" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -268,7 +315,8 @@ "component": "server" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -349,7 +397,7 @@ "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}", - "component": "server" + "component": "server" } }, "spec": { @@ -364,10 +412,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -641,7 +689,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-postgresql-persistent.json index 4c2f81f2e..e22399351 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-postgresql-persistent.json @@ -5,108 +5,127 @@ "annotations": { "description": "Application template for SSO 7.0 PostgreSQL applications with persistent storage", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,postrgresql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + PostgreSQL (Persistent)" }, "name": "sso70-postgresql-persistent" }, "labels": { "template": "sso70-postgresql-persistent", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -114,6 +133,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +141,42 @@ "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,58 +184,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -233,7 +277,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -257,7 +302,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -349,10 +395,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -624,7 +670,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-postgresql.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-postgresql.json index d8402ef72..aa8ebaa8e 100644 --- a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-postgresql.json +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso70-postgresql.json @@ -5,108 +5,127 @@ "annotations": { "description": "Application template for SSO 7.0 PostgreSQL applications", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,postrgresql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + PostgreSQL (Ephemeral)" }, "name": "sso70-postgresql" }, "labels": { "template": "sso70-postgresql", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -114,6 +133,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -121,30 +141,35 @@ "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -152,58 +177,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -228,7 +271,8 @@ "component": "server" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -253,7 +297,8 @@ "component": "server" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -349,10 +394,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -626,7 +671,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-https.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-https.json new file mode 100644 index 000000000..bee86d7c4 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-https.json @@ -0,0 +1,544 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + }, + "name": "sso71-https" + }, + "labels": { + "template": "sso71-https", + "xpaas": "1.4.0" + }, + "message": "A new SSO service has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-mysql-persistent.json new file mode 100644 index 000000000..49b37f348 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-mysql-persistent.json @@ -0,0 +1,799 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 MySQL applications with persistent storage", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + MySQL (Persistent)" + }, + "name": "sso71-mysql-persistent" + }, + "labels": { + "template": "sso71-mysql-persistent", + "xpaas": "1.4.0" + }, + "message": "A new persistent SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "512Mi", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-mysql.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-mysql.json new file mode 100644 index 000000000..634a75bab --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-mysql.json @@ -0,0 +1,767 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 MySQL applications", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + MySQL (Ephemeral)" + }, + "name": "sso71-mysql" + }, + "labels": { + "template": "sso71-mysql", + "xpaas": "1.4.0" + }, + "message": "A new SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-postgresql-persistent.json new file mode 100644 index 000000000..c53bb9d5b --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-postgresql-persistent.json @@ -0,0 +1,773 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 PostgreSQL applications with persistent storage", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + PostgreSQL (Persistent)" + }, + "name": "sso71-postgresql-persistent" + }, + "labels": { + "template": "sso71-postgresql-persistent", + "xpaas": "1.4.0" + }, + "message": "A new persistent SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "512Mi", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-postgresql.json b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-postgresql.json new file mode 100644 index 000000000..c1fc41eda --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/xpaas-templates/sso71-postgresql.json @@ -0,0 +1,741 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 PostgreSQL applications", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + PostgreSQL (Ephemeral)" + }, + "name": "sso71-postgresql" + }, + "labels": { + "template": "sso71-postgresql", + "xpaas": "1.4.0" + }, + "message": "A new SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ] + } + } + } + } + ] +} -- cgit v1.2.3 From 2e39bc8a2508a075544307bdcb210d6e667760b0 Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 30 Jun 2017 11:22:53 -0400 Subject: Sync latest image streams and templates for v1.5 --- .../db-templates/mariadb-ephemeral-template.json | 12 +- .../db-templates/mariadb-persistent-template.json | 12 +- .../db-templates/mongodb-ephemeral-template.json | 12 +- .../db-templates/mongodb-persistent-template.json | 12 +- .../db-templates/mysql-ephemeral-template.json | 12 +- .../db-templates/mysql-persistent-template.json | 12 +- .../postgresql-ephemeral-template.json | 11 +- .../postgresql-persistent-template.json | 11 +- .../db-templates/redis-ephemeral-template.json | 10 +- .../db-templates/redis-persistent-template.json | 10 +- .../v1.5/image-streams/image-streams-centos7.json | 73 +- .../v1.5/image-streams/image-streams-rhel7.json | 65 +- .../examples/v1.5/quickstart-templates/README.md | 1 + .../examples/v1.5/quickstart-templates/amp.yml | 1261 ++++++++++++++++++++ .../apicast-gateway-template.yml | 149 --- .../examples/v1.5/quickstart-templates/apicast.yml | 157 +++ .../cakephp-mysql-persistent.json | 7 +- .../v1.5/quickstart-templates/cakephp-mysql.json | 7 +- .../dancer-mysql-persistent.json | 10 +- .../v1.5/quickstart-templates/dancer-mysql.json | 10 +- .../django-postgresql-persistent.json | 9 +- .../quickstart-templates/django-postgresql.json | 9 +- .../v1.5/quickstart-templates/dotnet-example.json | 2 +- .../examples/v1.5/quickstart-templates/httpd.json | 274 +++++ .../jenkins-ephemeral-template.json | 5 +- .../jenkins-persistent-template.json | 5 +- .../nodejs-mongodb-persistent.json | 11 +- .../v1.5/quickstart-templates/nodejs-mongodb.json | 11 +- .../examples/v1.5/quickstart-templates/pvc.yml | 49 + .../rails-postgresql-persistent.json | 13 +- .../quickstart-templates/rails-postgresql.json | 13 +- .../v1.5/quickstart-templates/wildcard.yml | 158 +++ 32 files changed, 2205 insertions(+), 208 deletions(-) create mode 100644 roles/openshift_examples/files/examples/v1.5/quickstart-templates/amp.yml delete mode 100644 roles/openshift_examples/files/examples/v1.5/quickstart-templates/apicast-gateway-template.yml create mode 100644 roles/openshift_examples/files/examples/v1.5/quickstart-templates/apicast.yml create mode 100644 roles/openshift_examples/files/examples/v1.5/quickstart-templates/httpd.json create mode 100644 roles/openshift_examples/files/examples/v1.5/quickstart-templates/pvc.yml create mode 100644 roles/openshift_examples/files/examples/v1.5/quickstart-templates/wildcard.yml diff --git a/roles/openshift_examples/files/examples/v1.5/db-templates/mariadb-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.5/db-templates/mariadb-ephemeral-template.json index f347f1f9f..536f7275e 100644 --- a/roles/openshift_examples/files/examples/v1.5/db-templates/mariadb-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.5/db-templates/mariadb-ephemeral-template.json @@ -23,7 +23,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" + } }, "stringData" : { "database-user" : "${MYSQL_USER}", @@ -35,7 +40,10 @@ "kind": "Service", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mariadb\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.5/db-templates/mariadb-persistent-template.json b/roles/openshift_examples/files/examples/v1.5/db-templates/mariadb-persistent-template.json index 6ed744777..3b7fdccce 100644 --- a/roles/openshift_examples/files/examples/v1.5/db-templates/mariadb-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.5/db-templates/mariadb-persistent-template.json @@ -23,7 +23,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" + } }, "stringData" : { "database-user" : "${MYSQL_USER}", @@ -35,7 +40,10 @@ "kind": "Service", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mariadb\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.5/db-templates/mongodb-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.5/db-templates/mongodb-ephemeral-template.json index 97a8abf6d..ee274194f 100644 --- a/roles/openshift_examples/files/examples/v1.5/db-templates/mongodb-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.5/db-templates/mongodb-ephemeral-template.json @@ -24,7 +24,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-admin_password": "{.data['database-admin-password']}" + } }, "stringData" : { "database-user" : "${MONGODB_USER}", @@ -37,7 +42,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "mongodb://{.spec.clusterIP}:{.spec.ports[?(.name==\"mongo\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.5/db-templates/mongodb-persistent-template.json b/roles/openshift_examples/files/examples/v1.5/db-templates/mongodb-persistent-template.json index 0656219fb..e5ba43669 100644 --- a/roles/openshift_examples/files/examples/v1.5/db-templates/mongodb-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.5/db-templates/mongodb-persistent-template.json @@ -24,7 +24,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-admin_password": "{.data['database-admin-password']}" + } }, "stringData" : { "database-user" : "${MONGODB_USER}", @@ -37,7 +42,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "mongodb://{.spec.clusterIP}:{.spec.ports[?(.name==\"mongo\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.5/db-templates/mysql-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.5/db-templates/mysql-ephemeral-template.json index d60b4647d..969e62ac5 100644 --- a/roles/openshift_examples/files/examples/v1.5/db-templates/mysql-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.5/db-templates/mysql-ephemeral-template.json @@ -23,7 +23,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" + } }, "stringData" : { "database-user" : "${MYSQL_USER}", @@ -36,7 +41,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mysql\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.5/db-templates/mysql-persistent-template.json b/roles/openshift_examples/files/examples/v1.5/db-templates/mysql-persistent-template.json index c2bfa40fd..4f39d41a5 100644 --- a/roles/openshift_examples/files/examples/v1.5/db-templates/mysql-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.5/db-templates/mysql-persistent-template.json @@ -23,7 +23,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" + } }, "stringData" : { "database-user" : "${MYSQL_USER}", @@ -35,7 +40,10 @@ "kind": "Service", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mysql\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.5/db-templates/postgresql-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.5/db-templates/postgresql-ephemeral-template.json index 7a16e742a..c37102cb0 100644 --- a/roles/openshift_examples/files/examples/v1.5/db-templates/postgresql-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.5/db-templates/postgresql-ephemeral-template.json @@ -24,7 +24,11 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}" + } }, "stringData" : { "database-user" : "${POSTGRESQL_USER}", @@ -36,7 +40,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "postgres://{.spec.clusterIP}:{.spec.ports[?(.name==\"postgresql\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.5/db-templates/postgresql-persistent-template.json b/roles/openshift_examples/files/examples/v1.5/db-templates/postgresql-persistent-template.json index 242212d6f..32dc93a95 100644 --- a/roles/openshift_examples/files/examples/v1.5/db-templates/postgresql-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.5/db-templates/postgresql-persistent-template.json @@ -24,7 +24,11 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}" + } }, "stringData" : { "database-user" : "${POSTGRESQL_USER}", @@ -36,7 +40,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "postgres://{.spec.clusterIP}:{.spec.ports[?(.name==\"postgresql\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.5/db-templates/redis-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.5/db-templates/redis-ephemeral-template.json index e9af50937..6bb683e52 100644 --- a/roles/openshift_examples/files/examples/v1.5/db-templates/redis-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.5/db-templates/redis-ephemeral-template.json @@ -24,7 +24,10 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-password": "{.data['database-password']}" + } }, "stringData" : { "database-password" : "${REDIS_PASSWORD}" @@ -35,7 +38,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "redis://{.spec.clusterIP}:{.spec.ports[?(.name==\"redis\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.5/db-templates/redis-persistent-template.json b/roles/openshift_examples/files/examples/v1.5/db-templates/redis-persistent-template.json index aa27578a9..9e8be2309 100644 --- a/roles/openshift_examples/files/examples/v1.5/db-templates/redis-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.5/db-templates/redis-persistent-template.json @@ -24,7 +24,10 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-password": "{.data['database-password']}" + } }, "stringData" : { "database-password" : "${REDIS_PASSWORD}" @@ -35,7 +38,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "redis://{.spec.clusterIP}:{.spec.ports[?(.name==\"redis\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.5/image-streams/image-streams-centos7.json b/roles/openshift_examples/files/examples/v1.5/image-streams/image-streams-centos7.json index a81dbb654..6cef21945 100644 --- a/roles/openshift_examples/files/examples/v1.5/image-streams/image-streams-centos7.json +++ b/roles/openshift_examples/files/examples/v1.5/image-streams/image-streams-centos7.json @@ -3,6 +3,51 @@ "apiVersion": "v1", "metadata": {}, "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "httpd", + "annotations": { + "openshift.io/display-name": "Httpd" + } + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": { + "openshift.io/display-name": "Httpd (Latest)", + "description": "Build and serve static content via Httpd on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Httpd available on OpenShift, including major versions updates.", + "iconClass": "icon-apache", + "tags": "builder,httpd", + "supports":"httpd", + "sampleRepo": "https://github.com/openshift/httpd-ex.git" + }, + "from": { + "kind": "ImageStreamTag", + "name": "2.4" + } + }, + { + "name": "2.4", + "annotations": { + "openshift.io/display-name": "Httpd 2.4", + "description": "Build and serve static content via Httpd on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.", + "iconClass": "icon-apache", + "tags": "builder,httpd", + "supports":"httpd", + "version": "2.4", + "sampleRepo": "https://github.com/openshift/httpd-ex.git" + }, + "from": { + "kind": "DockerImage", + "name": "centos/httpd-24-centos7:latest" + } + } + ] + } + }, { "kind": "ImageStream", "apiVersion": "v1", @@ -103,7 +148,7 @@ }, "from": { "kind": "ImageStreamTag", - "name": "4" + "name": "6" } }, { @@ -137,6 +182,22 @@ "kind": "DockerImage", "name": "centos/nodejs-4-centos7:latest" } + }, + { + "name": "6", + "annotations": { + "openshift.io/display-name": "Node.js 6", + "description": "Build and run Node.js 6 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/6/README.md.", + "iconClass": "icon-nodejs", + "tags": "builder,nodejs", + "supports":"nodejs:6,nodejs", + "version": "6", + "sampleRepo": "https://github.com/openshift/nodejs-ex.git" + }, + "from": { + "kind": "DockerImage", + "name": "centos/nodejs-6-centos7:latest" + } } ] } @@ -407,7 +468,7 @@ "iconClass": "icon-wildfly", "tags": "builder,wildfly,java", "supports":"jee,java", - "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" + "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git" }, "from": { "kind": "ImageStreamTag", @@ -423,7 +484,7 @@ "tags": "builder,wildfly,java", "supports":"wildfly:8.1,jee,java", "version": "8.1", - "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" + "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", @@ -439,7 +500,7 @@ "tags": "builder,wildfly,java", "supports":"wildfly:9.0,jee,java", "version": "9.0", - "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" + "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", @@ -455,7 +516,7 @@ "tags": "builder,wildfly,java", "supports":"wildfly:10.0,jee,java", "version": "10.0", - "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" + "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", @@ -471,7 +532,7 @@ "tags": "builder,wildfly,java", "supports":"wildfly:10.1,jee,java", "version": "10.1", - "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" + "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", diff --git a/roles/openshift_examples/files/examples/v1.5/image-streams/image-streams-rhel7.json b/roles/openshift_examples/files/examples/v1.5/image-streams/image-streams-rhel7.json index 2ed0efe1e..abdae01e3 100644 --- a/roles/openshift_examples/files/examples/v1.5/image-streams/image-streams-rhel7.json +++ b/roles/openshift_examples/files/examples/v1.5/image-streams/image-streams-rhel7.json @@ -3,6 +3,51 @@ "apiVersion": "v1", "metadata": {}, "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "httpd", + "annotations": { + "openshift.io/display-name": "Httpd" + } + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": { + "openshift.io/display-name": "Httpd (Latest)", + "description": "Build and serve static content via Httpd on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Httpd available on OpenShift, including major versions updates.", + "iconClass": "icon-apache", + "tags": "builder,httpd", + "supports":"httpd", + "sampleRepo": "https://github.com/openshift/httpd-ex.git" + }, + "from": { + "kind": "ImageStreamTag", + "name": "2.4" + } + }, + { + "name": "2.4", + "annotations": { + "openshift.io/display-name": "Httpd 2.4", + "description": "Build and serve static content via Httpd on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.", + "iconClass": "icon-apache", + "tags": "builder,httpd", + "supports":"httpd", + "version": "2.4", + "sampleRepo": "https://github.com/openshift/httpd-ex.git" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/rhscl/httpd-24-rhel7" + } + } + ] + } + }, { "kind": "ImageStream", "apiVersion": "v1", @@ -103,7 +148,7 @@ }, "from": { "kind": "ImageStreamTag", - "name": "4" + "name": "6" } }, { @@ -137,6 +182,22 @@ "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/nodejs-4-rhel7:latest" } + }, + { + "name": "6", + "annotations": { + "openshift.io/display-name": "Node.js 6", + "description": "Build and run Node.js 6 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container.", + "iconClass": "icon-nodejs", + "tags": "builder,nodejs", + "supports":"nodejs:6,nodejs", + "version": "6", + "sampleRepo": "https://github.com/openshift/nodejs-ex.git" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/rhscl/nodejs-6-rhel7:latest" + } } ] } @@ -253,7 +314,7 @@ "tags": "hidden,builder,php", "supports":"php:5.5,php", "version": "5.5", - "sampleRepo": "https://github.com/openshift/cakephp-ex.git" + "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { "kind": "DockerImage", diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/README.md b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/README.md index f48d8d4a8..6d2ccbf7f 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/README.md +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/README.md @@ -17,6 +17,7 @@ instantiating them. * [Dancer persistent](https://raw.githubusercontent.com/openshift/dancer-ex/master/openshift/templates/dancer-mysql-persistent.json) - Provides a basic Dancer (Perl) application with a persistent MySQL database. Note: requires available persistent volumes. For more information see the [source repository](https://github.com/openshift/dancer-ex). * [Django](https://raw.githubusercontent.com/openshift/django-ex/master/openshift/templates/django-postgresql.json) - Provides a basic Django (Python) application with a PostgreSQL database. For more information see the [source repository](https://github.com/openshift/django-ex). * [Django persistent](https://raw.githubusercontent.com/openshift/django-ex/master/openshift/templates/django-postgresql-persistent.json) - Provides a basic Django (Python) application with a persistent PostgreSQL database. Note: requires available persistent volumes. For more information see the [source repository](https://github.com/openshift/django-ex). +* [Httpd](https://raw.githubusercontent.com/openshift/httpd-ex/master/openshift/templates/httpd.json) - Provides a basic Httpd static content application. For more information see the [source repository](https://github.com/openshift/httpd-ex). * [NodeJS](https://raw.githubusercontent.com/openshift/nodejs-ex/master/openshift/templates/nodejs-mongodb.json) - Provides a basic NodeJS application with a MongoDB database. For more information see the [source repository](https://github.com/openshift/nodejs-ex). * [NodeJS persistent](https://raw.githubusercontent.com/openshift/nodejs-ex/master/openshift/templates/nodejs-mongodb-persistent.json) - Provides a basic NodeJS application with a persistent MongoDB database. Note: requires available persistent volumes. For more information see the [source repository](https://github.com/openshift/nodejs-ex). * [Rails](https://raw.githubusercontent.com/openshift/rails-ex/master/openshift/templates/rails-postgresql.json) - Provides a basic Rails (Ruby) application with a PostgreSQL database. For more information see the [source repository](https://github.com/openshift/rails-ex). diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/amp.yml b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/amp.yml new file mode 100644 index 000000000..4e469f6e8 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/amp.yml @@ -0,0 +1,1261 @@ +base_env: &base_env +- name: RAILS_ENV + value: "production" +- name: DATABASE_URL + value: "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}" +- name: FORCE_SSL + value: "true" +- name: THREESCALE_SUPERDOMAIN + value: "${WILDCARD_DOMAIN}" +- name: TENANT_NAME + value: "${TENANT_NAME}" +- name: APICAST_ACCESS_TOKEN + value: "${APICAST_ACCESS_TOKEN}" +- name: ADMIN_ACCESS_TOKEN + value: "${ADMIN_ACCESS_TOKEN}" +- name: PROVIDER_PLAN + value: 'enterprise' +- name: USER_LOGIN + value: "${ADMIN_USERNAME}" +- name: USER_PASSWORD + value: "${ADMIN_PASSWORD}" +- name: RAILS_LOG_TO_STDOUT + value: "true" +- name: RAILS_LOG_LEVEL + value: "info" +- name: THINKING_SPHINX_ADDRESS + value: "system-sphinx" +- name: THINKING_SPHINX_PORT + value: "9306" +- name: THINKING_SPHINX_CONFIGURATION_FILE + value: "/tmp/sphinx.conf" +- name: EVENTS_SHARED_SECRET + value: "${SYSTEM_BACKEND_SHARED_SECRET}" +- name: THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE + value: "VERIFY_NONE" +- name: APICAST_BACKEND_ROOT_ENDPOINT + value: "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}" +- name: CONFIG_INTERNAL_API_USER + value: "${SYSTEM_BACKEND_USERNAME}" +- name: CONFIG_INTERNAL_API_PASSWORD + value: "${SYSTEM_BACKEND_PASSWORD}" +- name: SECRET_KEY_BASE + value: "${SYSTEM_APP_SECRET_KEY_BASE}" +- name: AMP_RELEASE + value: "${AMP_RELEASE}" +- name: SMTP_ADDRESS + valueFrom: + configMapKeyRef: + name: smtp + key: address +- name: SMTP_USER_NAME + valueFrom: + configMapKeyRef: + name: smtp + key: username +- name: SMTP_PASSWORD + valueFrom: + configMapKeyRef: + name: smtp + key: password +- name: SMTP_DOMAIN + valueFrom: + configMapKeyRef: + name: smtp + key: domain +- name: SMTP_PORT + valueFrom: + configMapKeyRef: + name: smtp + key: port +- name: SMTP_AUTHENTICATION + valueFrom: + configMapKeyRef: + name: smtp + key: authentication +- name: SMTP_OPENSSL_VERIFY_MODE + valueFrom: + configMapKeyRef: + name: smtp + key: openssl.verify.mode +- name: BACKEND_ROUTE + value: "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}" + +apiVersion: v1 +kind: Template +metadata: + name: "system" +message: "Login on https://${TENANT_NAME}-admin.${WILDCARD_DOMAIN} as ${ADMIN_USERNAME}/${ADMIN_PASSWORD}" +objects: + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "system-storage" + spec: + accessModes: + - "ReadWriteMany" + resources: + requests: + storage: "100Mi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "mysql-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "system-redis-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "backend-redis-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: backend-cron + spec: + replicas: 1 + selector: + name: backend-cron + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: backend-cron + spec: + containers: + - args: + - backend-cron + env: + - name: CONFIG_REDIS_PROXY + value: "backend-redis:6379" + - name: CONFIG_QUEUES_MASTER_NAME + value: "backend-redis:6379/1" + - name: RACK_ENV + value: "production" + image: 3scale-amp20/backend:1.0-2 + imagePullPolicy: IfNotPresent + name: backend-cron + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: backend-redis + spec: + replicas: 1 + selector: + name: backend-redis + strategy: + type: Recreate + template: + metadata: + labels: + name: backend-redis + spec: + containers: + - image: ${REDIS_IMAGE} + imagePullPolicy: IfNotPresent + name: backend-redis + readinessProbe: + exec: + command: + - "container-entrypoint" + - "bash" + - "-c" + - "redis-cli set liveness-probe \"`date`\" | grep OK" + initialDelaySeconds: 10 + periodSeconds: 30 + timeoutSeconds: 1 + livenessProbe: + tcpSocket: + port: 6379 + initialDelaySeconds: 10 + periodSeconds: 10 + volumeMounts: + - name: backend-redis-storage + mountPath: "/var/lib/redis/data" + - name: redis-config + mountPath: /etc/redis.conf + subPath: redis.conf + volumes: + - name: backend-redis-storage + persistentVolumeClaim: + claimName: backend-redis-storage + - name: redis-config + configMap: + name: redis-config + items: + - key: redis.conf + path: redis.conf + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: backend-listener + spec: + replicas: 1 + selector: + name: backend-listener + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: backend-listener + spec: + containers: + - args: + - 3scale_backend + - start + - "-e" + - production + - "-p" + - '3000' + - "-x" + - "/dev/stdout" + env: + - name: CONFIG_REDIS_PROXY + value: "backend-redis:6379" + - name: CONFIG_QUEUES_MASTER_NAME + value: "backend-redis:6379/1" + - name: RACK_ENV + value: "production" + - name: CONFIG_INTERNAL_API_USER + value: "${SYSTEM_BACKEND_USERNAME}" + - name: CONFIG_INTERNAL_API_PASSWORD + value: "${SYSTEM_BACKEND_PASSWORD}" + image: 3scale-amp20/backend:1.0-2 + imagePullPolicy: IfNotPresent + name: backend-listener + livenessProbe: + initialDelaySeconds: 30 + periodSeconds: 10 + tcpSocket: + port: 3000 + readinessProbe: + httpGet: + path: "/status" + port: 3000 + initialDelaySeconds: 30 + timeoutSeconds: 5 + ports: + - containerPort: 3000 + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: backend-redis + spec: + ports: + - port: 6379 + protocol: TCP + targetPort: 6379 + selector: + name: backend-redis + +- apiVersion: v1 + kind: Service + metadata: + name: backend-listener + spec: + ports: + - port: 3000 + protocol: TCP + targetPort: 3000 + name: http + selector: + name: backend-listener + +- apiVersion: v1 + kind: Service + metadata: + name: system-provider + spec: + ports: + - port: 3000 + protocol: TCP + targetPort: provider + name: http + selector: + name: system-app + +- apiVersion: v1 + kind: Service + metadata: + name: system-developer + spec: + ports: + - port: 3000 + protocol: TCP + targetPort: developer + name: http + selector: + name: system-app + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: backend-worker + spec: + replicas: 1 + selector: + name: backend-worker + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: backend-worker + spec: + containers: + - args: + - 3scale_backend_worker + - run + env: + - name: CONFIG_REDIS_PROXY + value: "backend-redis:6379" + - name: CONFIG_QUEUES_MASTER_NAME + value: "backend-redis:6379/1" + - name: RACK_ENV + value: "production" + - name: CONFIG_EVENTS_HOOK + value: http://system-provider:3000/master/events/import + - name: CONFIG_EVENTS_HOOK_SHARED_SECRET + value: ${SYSTEM_BACKEND_SHARED_SECRET} + image: 3scale-amp20/backend:1.0-2 + imagePullPolicy: IfNotPresent + name: backend-worker + triggers: + - type: ConfigChange + +- kind: Service + apiVersion: v1 + metadata: + name: 'system-mysql' + spec: + ports: + - name: system-mysql + protocol: TCP + port: 3306 + targetPort: 3306 + nodePort: 0 + selector: + name: 'system-mysql' +- apiVersion: v1 + kind: Service + metadata: + name: system-redis + spec: + ports: + - port: 6379 + protocol: TCP + targetPort: 6379 + name: redis + selector: + name: system-redis + + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-redis + spec: + replicas: 1 + selector: + name: system-redis + strategy: + type: Recreate + template: + metadata: + labels: + name: system-redis + spec: + containers: + - args: + image: ${REDIS_IMAGE} + imagePullPolicy: IfNotPresent + name: system-redis + terminationMessagePath: /dev/termination-log + volumeMounts: + - name: system-redis-storage + mountPath: "/var/lib/redis/data" + - name: redis-config + mountPath: /etc/redis.conf + subPath: redis.conf + readinessProbe: + exec: + command: + - "container-entrypoint" + - "bash" + - "-c" + - "redis-cli set liveness-probe \"`date`\" | grep OK" + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + livenessProbe: + tcpSocket: + port: 6379 + initialDelaySeconds: 10 + periodSeconds: 5 + volumes: + - name: system-redis-storage + persistentVolumeClaim: + claimName: system-redis-storage + - name: redis-config + configMap: + name: redis-config + items: + - key: redis.conf + path: redis.conf + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: system-sphinx + spec: + ports: + - port: 9306 + protocol: TCP + targetPort: 9306 + name: sphinx + selector: + name: system-sphinx + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-sphinx + spec: + replicas: 1 + selector: + name: system-sphinx + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: system-sphinx + spec: + volumes: + - name: system-sphinx-database + emptyDir: {} + containers: + - args: + - rake + - 'openshift:thinking_sphinx:start' + volumeMounts: + - name: system-sphinx-database + mountPath: "/opt/system/db/sphinx" + env: + - name: RAILS_ENV + value: production + - name: DATABASE_URL + value: "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}" + - name: THINKING_SPHINX_ADDRESS + value: 0.0.0.0 + - name: THINKING_SPHINX_CONFIGURATION_FILE + value: "db/sphinx/production.conf" + - name: THINKING_SPHINX_PID_FILE + value: db/sphinx/searchd.pid + - name: DELTA_INDEX_INTERVAL + value: '5' + - name: FULL_REINDEX_INTERVAL + value: '60' + image: 3scale-amp20/system:1.0-2 + imagePullPolicy: IfNotPresent + name: system-sphinx + livenessProbe: + tcpSocket: + port: 9306 + initialDelaySeconds: 60 + periodSeconds: 10 + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: system-memcache + spec: + ports: + - port: 11211 + protocol: TCP + targetPort: 11211 + name: memcache + selector: + name: system-memcache +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-memcache + spec: + replicas: 1 + selector: + name: system-memcache + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: system-memcache + spec: + containers: + - args: + env: + image: 3scale-amp20/memcached:1.4.15-7 + imagePullPolicy: IfNotPresent + name: memcache + readinessProbe: + exec: + command: + - "sh" + - "-c" + - "echo version | nc $HOSTNAME 11211 | grep VERSION" + initialDelaySeconds: 10 + periodSeconds: 30 + timeoutSeconds: 5 + livenessProbe: + tcpSocket: + port: 11211 + initialDelaySeconds: 10 + periodSeconds: 10 + command: + - "memcached" + - "-m" + - "64" + ports: + - containerPort: 6379 + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Route + metadata: + name: system-provider-admin-route + labels: + app: system-route + spec: + host: ${TENANT_NAME}-admin.${WILDCARD_DOMAIN} + to: + kind: Service + name: system-provider + port: + targetPort: http + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +- apiVersion: v1 + kind: Route + metadata: + name: backend-route + labels: + app: system-route + spec: + host: backend-${TENANT_NAME}.${WILDCARD_DOMAIN} + to: + kind: Service + name: backend-listener + port: + targetPort: http + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +- apiVersion: v1 + kind: Route + metadata: + name: system-developer-route + labels: + app: system-route + spec: + host: ${TENANT_NAME}.${WILDCARD_DOMAIN} + to: + kind: Service + name: system-developer + port: + targetPort: http + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: apicast-staging + spec: + replicas: 1 + selector: + deploymentconfig: apicast-staging + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 1800 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + deploymentconfig: apicast-staging + spec: + containers: + - env: + - name: THREESCALE_PORTAL_ENDPOINT + value: http://${APICAST_ACCESS_TOKEN}@system-provider:3000 + - name: APICAST_CONFIGURATION_LOADER + value: "lazy" + - name: APICAST_CONFIGURATION_CACHE + value: "0" + - name: THREESCALE_DEPLOYMENT_ENV + value: "sandbox" + - name: APICAST_MANAGEMENT_API + value: "${APICAST_MANAGEMENT_API}" + - name: BACKEND_ENDPOINT_OVERRIDE + value: http://backend-listener:3000 + - name: OPENSSL_VERIFY + value: '${APICAST_OPENSSL_VERIFY}' + - name: APICAST_RESPONSE_CODES + value: '${APICAST_RESPONSE_CODES}' + - name: REDIS_URL + value: "redis://system-redis:6379/2" + image: 3scale-amp20/apicast-gateway:1.0-3 + imagePullPolicy: IfNotPresent + name: apicast-staging + livenessProbe: + httpGet: + path: /status/live + port: 8090 + initialDelaySeconds: 10 + timeoutSeconds: 5 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /status/ready + port: 8090 + initialDelaySeconds: 15 + timeoutSeconds: 5 + periodSeconds: 30 + ports: + - containerPort: 8080 + protocol: TCP + - containerPort: 8090 + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: apicast-staging + spec: + ports: + - name: gateway + port: 8080 + protocol: TCP + targetPort: 8080 + - name: management + port: 8090 + protocol: TCP + targetPort: 8090 + selector: + deploymentconfig: apicast-staging + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: apicast-production + spec: + replicas: 1 + selector: + deploymentconfig: apicast-production + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 1800 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + deploymentconfig: apicast-production + spec: + containers: + - env: + - name: THREESCALE_PORTAL_ENDPOINT + value: "http://${APICAST_ACCESS_TOKEN}@system-provider:3000" + - name: APICAST_CONFIGURATION_LOADER + value: "boot" + - name: APICAST_CONFIGURATION_CACHE + value: "300" + - name: THREESCALE_DEPLOYMENT_ENV + value: "production" + - name: APICAST_MANAGEMENT_API + value: "${APICAST_MANAGEMENT_API}" + - name: BACKEND_ENDPOINT_OVERRIDE + value: http://backend-listener:3000 + - name: OPENSSL_VERIFY + value: '${APICAST_OPENSSL_VERIFY}' + - name: APICAST_RESPONSE_CODES + value: '${APICAST_RESPONSE_CODES}' + - name: REDIS_URL + value: "redis://system-redis:6379/1" + image: 3scale-amp20/apicast-gateway:1.0-3 + imagePullPolicy: IfNotPresent + name: apicast-production + livenessProbe: + httpGet: + path: /status/live + port: 8090 + initialDelaySeconds: 10 + timeoutSeconds: 5 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /status/ready + port: 8090 + initialDelaySeconds: 15 + timeoutSeconds: 5 + periodSeconds: 30 + ports: + - containerPort: 8080 + protocol: TCP + - containerPort: 8090 + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: apicast-production + spec: + ports: + - name: gateway + port: 8080 + protocol: TCP + targetPort: 8080 + - name: management + port: 8090 + protocol: TCP + targetPort: 8090 + selector: + deploymentconfig: apicast-production + +- apiVersion: v1 + kind: Route + metadata: + name: api-apicast-staging-route + labels: + app: apicast-staging + spec: + host: api-${TENANT_NAME}-apicast-staging.${WILDCARD_DOMAIN} + to: + kind: Service + name: apicast-staging + port: + targetPort: gateway + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +- apiVersion: v1 + kind: Route + metadata: + name: api-apicast-production-route + labels: + app: apicast-production + spec: + host: api-${TENANT_NAME}-apicast-production.${WILDCARD_DOMAIN} + to: + kind: Service + name: apicast-production + port: + targetPort: gateway + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-app + spec: + replicas: 1 + selector: + name: system-app + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + pre: + failurePolicy: Retry + execNewPod: + containerName: system-provider + command: + - bash + - -c + - bundle exec rake boot openshift:deploy + env: *base_env + volumes: + - system-storage + post: + failurePolicy: Abort + execNewPod: + containerName: system-provider + command: + - bash + - -c + - bundle exec rake boot openshift:post_deploy + type: Rolling + template: + metadata: + labels: + name: system-app + spec: + containers: + - args: + env: *base_env + image: 3scale-amp20/system:1.0-2 + imagePullPolicy: IfNotPresent + command: ['env', 'TENANT_MODE=provider', 'PORT=3000', 'container-entrypoint', 'bundle', 'exec', 'unicorn', '-c', 'config/unicorn.rb'] + name: system-provider + livenessProbe: + timeoutSeconds: 10 + initialDelaySeconds: 20 + tcpSocket: + port: provider + periodSeconds: 10 + readinessProbe: + httpGet: + path: /check.txt + port: provider + scheme: HTTP + httpHeaders: + - name: X-Forwarded-Proto + value: https + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + ports: + - containerPort: 3000 + protocol: TCP + name: provider + volumeMounts: + - name: system-storage + mountPath: /opt/system/public/system + - args: + env: *base_env + image: 3scale-amp20/system:1.0-2 + command: ['env', 'TENANT_MODE=developer', 'PORT=3001', 'container-entrypoint', 'bundle', 'exec', 'unicorn', '-c', 'config/unicorn.rb'] + imagePullPolicy: IfNotPresent + name: system-developer + livenessProbe: + timeoutSeconds: 10 + initialDelaySeconds: 20 + tcpSocket: + port: developer + periodSeconds: 10 + readinessProbe: + httpGet: + path: /check.txt + port: developer + scheme: HTTP + httpHeaders: + - name: X-Forwarded-Proto + value: https + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + ports: + - containerPort: 3001 + protocol: TCP + name: developer + volumeMounts: + - name: system-storage + mountPath: /opt/system/public/system + readOnly: true + volumes: + - name: system-storage + persistentVolumeClaim: + claimName: system-storage + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-resque + spec: + replicas: 1 + selector: + name: system-resque + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: system-resque + spec: + containers: + - args: + - 'rake' + - 'resque:work' + - 'QUEUE=*' + env: *base_env + image: 3scale-amp20/system:1.0-2 + imagePullPolicy: IfNotPresent + name: system-resque + volumeMounts: + - name: system-storage + mountPath: /opt/system/public/system + - args: + - 'rake' + - 'resque:scheduler' + - 'QUEUE=*' + env: *base_env + image: 3scale-amp20/system:1.0-2 + imagePullPolicy: IfNotPresent + name: system-scheduler + volumes: + - name: system-storage + persistentVolumeClaim: + claimName: system-storage + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-sidekiq + spec: + replicas: 1 + selector: + name: system-sidekiq + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: system-sidekiq + spec: + containers: + - args: + - rake + - sidekiq:worker + env: *base_env + image: 3scale-amp20/system:1.0-2 + imagePullPolicy: IfNotPresent + name: system-sidekiq + volumeMounts: + - name: system-storage + mountPath: /opt/system/public/system + volumes: + - name: system-storage + persistentVolumeClaim: + claimName: system-storage + triggers: + - type: ConfigChange + + +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: 'system-mysql' + spec: + strategy: + type: Recreate + triggers: + - type: ConfigChange + replicas: 1 + selector: + name: 'system-mysql' + template: + metadata: + labels: + name: 'system-mysql' + spec: + containers: + - name: system-mysql + image: ${MYSQL_IMAGE} + ports: + - containerPort: 3306 + protocol: TCP + resources: + limits: + memory: 2Gi + requests: + cpu: '1' + memory: 1Gi + readinessProbe: + timeoutSeconds: 5 + initialDelaySeconds: 10 + periodSeconds: 30 + exec: + command: + - /bin/sh + - '-i' + - '-c' + - MYSQL_PWD="$MYSQL_PASSWORD" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1' + livenessProbe: + initialDelaySeconds: 30 + periodSeconds: 10 + tcpSocket: + port: 3306 + env: + - name: MYSQL_USER + value: ${MYSQL_USER} + - name: MYSQL_PASSWORD + value: ${MYSQL_PASSWORD} + - name: MYSQL_DATABASE + value: ${MYSQL_DATABASE} + - name: MYSQL_ROOT_PASSWORD + value: ${MYSQL_ROOT_PASSWORD} + - name: MYSQL_LOWER_CASE_TABLE_NAMES + value: "1" + volumeMounts: + - name: 'mysql-storage' + mountPath: /var/lib/mysql/data + imagePullPolicy: IfNotPresent + volumes: + - name: 'mysql-storage' + persistentVolumeClaim: + claimName: 'mysql-storage' +- kind: ConfigMap + apiVersion: v1 + metadata: + name: redis-config + data: + redis.conf: | + protected-mode no + + port 6379 + + timeout 0 + tcp-keepalive 300 + + daemonize no + supervised no + + loglevel notice + + databases 16 + + save 900 1 + save 300 10 + save 60 10000 + + stop-writes-on-bgsave-error yes + + rdbcompression yes + rdbchecksum yes + + dbfilename dump.rdb + + slave-serve-stale-data yes + slave-read-only yes + + repl-diskless-sync no + repl-disable-tcp-nodelay no + + appendonly yes + appendfilename "appendonly.aof" + appendfsync everysec + no-appendfsync-on-rewrite no + auto-aof-rewrite-percentage 100 + auto-aof-rewrite-min-size 64mb + aof-load-truncated yes + + lua-time-limit 5000 + + activerehashing no + + aof-rewrite-incremental-fsync yes + dir /var/lib/redis/data + +- kind: ConfigMap + + apiVersion: v1 + metadata: + name: smtp + data: + address: "" + username: "" + password: "" + domain: "" + port: "" + authentication: "" + openssl.verify.mode: "" + +parameters: +- name: AMP_RELEASE + description: "AMP release tag." + value: 2.0.0-CR2-redhat-1 + required: true +- name: ADMIN_PASSWORD + required: true + generate: expression + from: "[a-z0-9]{8}" +- name: ADMIN_USERNAME + value: admin + required: true +- name: APICAST_ACCESS_TOKEN + required: true + generate: expression + from: "[a-z0-9]{8}" + description: "Read Only Access Token that is APIcast going to use to download its configuration." +- name: ADMIN_ACCESS_TOKEN + required: false + generate: expression + from: "[a-z0-9]{16}" + description: "Admin Access Token with all scopes and write permissions for API access." +- name: WILDCARD_DOMAIN + description: Root domain for the wildcard routes. Eg. example.com will generate 3scale-admin.example.com. + required: true +- name: TENANT_NAME + description: "Tenant name under the root that Admin UI will be available with -admin suffix." + required: true + value: "3scale" +- name: MYSQL_USER + displayName: MySQL User + description: Username for MySQL user that will be used for accessing the database. + value: "mysql" + required: true +- name: MYSQL_PASSWORD + displayName: MySQL Password + description: Password for the MySQL user. + generate: expression + from: "[a-z0-9]{8}" + required: true +- name: MYSQL_DATABASE + displayName: MySQL Database Name + description: Name of the MySQL database accessed. + value: "system" + required: true +- name: MYSQL_ROOT_PASSWORD + displayName: MySQL Root password. + description: Password for Root user. + generate: expression + from: "[a-z0-9]{8}" + required: true +- name: SYSTEM_BACKEND_USERNAME + description: Internal 3scale API username for internal 3scale api auth. + value: "3scale_api_user" + required: true +- name: SYSTEM_BACKEND_PASSWORD + description: Internal 3scale API password for internal 3scale api auth. + generate: expression + from: "[a-z0-9]{8}" + required: true +- name: REDIS_IMAGE + description: Redis image to use + required: true + value: rhscl/redis-32-rhel7:3.2-5.7 +- name: MYSQL_IMAGE + description: Mysql image to use + required: true + value: rhscl/mysql-56-rhel7:5.6-13.14 +- name: SYSTEM_BACKEND_SHARED_SECRET + description: Shared secret to import events from backend to system. + generate: expression + from: "[a-z0-9]{8}" + required: true +- name: SYSTEM_APP_SECRET_KEY_BASE + description: System application secret key base + generate: expression + from: "[a-f0-9]{128}" + required: true +- name: APICAST_MANAGEMENT_API + description: "Scope of the APIcast Management API. Can be disabled, status or debug. At least status required for health checks." + required: false + value: "status" +- name: APICAST_OPENSSL_VERIFY + description: "Turn on/off the OpenSSL peer verification when downloading the configuration. Can be set to true/false." + required: false + value: "false" +- name: APICAST_RESPONSE_CODES + description: "Enable logging response codes in APIcast." + value: "true" + required: false diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/apicast-gateway-template.yml b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/apicast-gateway-template.yml deleted file mode 100644 index 34f5fcbcc..000000000 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/apicast-gateway-template.yml +++ /dev/null @@ -1,149 +0,0 @@ -apiVersion: v1 -kind: Template -metadata: - creationTimestamp: null - name: 3scale-gateway - annotations: - description: "3scale API Gateway" - iconClass: "icon-load-balancer" - tags: "api,gateway,3scale" -objects: -- apiVersion: v1 - kind: DeploymentConfig - metadata: - name: ${THREESCALE_GATEWAY_NAME} - spec: - replicas: 2 - selector: - deploymentconfig: ${THREESCALE_GATEWAY_NAME} - strategy: - resources: {} - rollingParams: - intervalSeconds: 1 - maxSurge: 25% - maxUnavailable: 25% - timeoutSeconds: 600 - updatePeriodSeconds: 1 - type: Rolling - template: - metadata: - labels: - deploymentconfig: ${THREESCALE_GATEWAY_NAME} - spec: - containers: - - env: - - name: THREESCALE_PORTAL_ENDPOINT - valueFrom: - secretKeyRef: - name: ${THREESCALE_PORTAL_ENDPOINT_SECRET} - key: password - - name: THREESCALE_CONFIG_FILE - value: ${THREESCALE_CONFIG_FILE} - - name: RESOLVER - value: ${RESOLVER} - - name: APICAST_SERVICES - value: ${APICAST_SERVICES} - - name: APICAST_MISSING_CONFIGURATION - value: ${MISSING_CONFIGURATION} - - name: APICAST_LOG_LEVEL - value: ${APICAST_LOG_LEVEL} - - name: APICAST_PATH_ROUTING_ENABLED - value: ${PATH_ROUTING} - - name: APICAST_RESPONSE_CODES - value: ${RESPONSE_CODES} - - name: APICAST_REQUEST_LOGS - value: ${REQUEST_LOGS} - - name: APICAST_RELOAD_CONFIG - value: ${APICAST_RELOAD_CONFIG} - image: ${THREESCALE_GATEWAY_IMAGE} - imagePullPolicy: Always - name: ${THREESCALE_GATEWAY_NAME} - livenessProbe: - httpGet: - path: /status/live - port: 8090 - initialDelaySeconds: 10 - timeoutSeconds: 1 - readinessProbe: - httpGet: - path: /status/ready - port: 8090 - initialDelaySeconds: 15 - timeoutSeconds: 1 - ports: - - containerPort: 8080 - protocol: TCP - resources: {} - terminationMessagePath: /dev/termination-log - dnsPolicy: ClusterFirst - restartPolicy: Always - securityContext: {} - terminationGracePeriodSeconds: 30 - triggers: - - type: ConfigChange - status: {} -- apiVersion: v1 - kind: Service - metadata: - creationTimestamp: null - name: ${THREESCALE_GATEWAY_NAME} - spec: - ports: - - name: 8080-tcp - port: 8080 - protocol: TCP - targetPort: 8080 - selector: - deploymentconfig: ${THREESCALE_GATEWAY_NAME} - sessionAffinity: None - type: ClusterIP - status: - loadBalancer: {} -parameters: -- description: "Name of the secret containing the THREESCALE_PORTAL_ENDPOINT with the access-token or provider key" - value: threescale-portal-endpoint-secret - name: THREESCALE_PORTAL_ENDPOINT_SECRET - required: true -- description: "Path to saved JSON file with configuration for the gateway. Has to be injected to the docker image as read only volume." - value: - name: THREESCALE_CONFIG_FILE - required: false -- description: "Name for the 3scale API Gateway" - value: threescalegw - name: THREESCALE_GATEWAY_NAME - required: true -- description: "Docker image to use." - value: 'rhamp10/apicast-gateway:1.0.0-4' - name: THREESCALE_GATEWAY_IMAGE - required: true -- description: "DNS Resolver for openresty, if empty it will be autodiscovered" - value: - name: RESOLVER - required: false -- description: "Subset of services to run. Use comma separated list of service ids (eg. 42,1337)" - value: - name: APICAST_SERVICES - required: false -- description: "What to do on missing or invalid configuration. Allowed values are: log, exit." - value: exit - required: false - name: MISSING_CONFIGURATION -- description: "Log level. One of the following: debug, info, notice, warn, error, crit, alert, or emerg." - name: APICAST_LOG_LEVEL - required: false -- description: "Enable path routing. Experimental feature." - name: PATH_ROUTING - required: false - value: "false" -- description: "Enable traffic logging to 3scale. Includes whole request and response." - value: "false" - name: REQUEST_LOGS - required: false -- description: "Enable logging response codes to 3scale." - value: "false" - name: RESPONSE_CODES - required: false -- description: "Reload config on every request" - value: "false" - name: APICAST_RELOAD_CONFIG - required: false diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/apicast.yml b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/apicast.yml new file mode 100644 index 000000000..8e8051c0b --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/apicast.yml @@ -0,0 +1,157 @@ +apiVersion: v1 +kind: Template +metadata: + name: 3scale-gateway + annotations: + description: "3scale API Gateway" + iconClass: "icon-load-balancer" + tags: "api,gateway,3scale" +objects: + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: "${APICAST_NAME}" + spec: + replicas: 2 + selector: + deploymentconfig: "${APICAST_NAME}" + strategy: + type: Rolling + template: + metadata: + labels: + deploymentconfig: "${APICAST_NAME}" + spec: + containers: + - env: + - name: THREESCALE_PORTAL_ENDPOINT + valueFrom: + secretKeyRef: + name: "${CONFIGURATION_URL_SECRET}" + key: password + - name: THREESCALE_CONFIG_FILE + value: "${CONFIGURATION_FILE_PATH}" + - name: THREESCALE_DEPLOYMENT_ENV + value: "${DEPLOYMENT_ENVIRONMENT}" + - name: RESOLVER + value: "${RESOLVER}" + - name: APICAST_SERVICES + value: "${SERVICES_LIST}" + - name: APICAST_CONFIGURATION_LOADER + value: "${CONFIGURATION_LOADER}" + - name: APICAST_LOG_LEVEL + value: "${LOG_LEVEL}" + - name: APICAST_PATH_ROUTING_ENABLED + value: "${PATH_ROUTING}" + - name: APICAST_RESPONSE_CODES + value: "${RESPONSE_CODES}" + - name: APICAST_CONFIGURATION_CACHE + value: "${CONFIGURATION_CACHE}" + - name: REDIS_URL + value: "${REDIS_URL}" + - name: APICAST_MANAGEMENT_API + value: "${MANAGEMENT_API}" + - name: OPENSSL_VERIFY + value: "${OPENSSL_VERIFY}" + image: 3scale-amp20/apicast-gateway:1.0-3 + imagePullPolicy: IfNotPresent + name: "${APICAST_NAME}" + livenessProbe: + httpGet: + path: /status/live + port: management + initialDelaySeconds: 10 + timeoutSeconds: 1 + readinessProbe: + httpGet: + path: /status/ready + port: management + initialDelaySeconds: 15 + timeoutSeconds: 1 + ports: + - name: proxy + containerPort: 8080 + protocol: TCP + - name: management + containerPort: 8090 + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: "${APICAST_NAME}" + spec: + ports: + - name: proxy + port: 8080 + protocol: TCP + targetPort: 8080 + - name: management + port: 8090 + protocol: TCP + targetPort: 8090 + selector: + deploymentconfig: "${APICAST_NAME}" + +parameters: +- name: AMP_RELEASE + description: "AMP release tag." + value: 2.0.0-CR2-redhat-1 + required: true +- description: "Name of the secret containing the THREESCALE_PORTAL_ENDPOINT with the access-token or provider key" + value: apicast-configuration-url-secret + name: CONFIGURATION_URL_SECRET + required: true +- description: "Path to saved JSON file with configuration for the gateway. Has to be injected to the docker image as read only volume." + value: + name: CONFIGURATION_FILE_PATH + required: false +- description: "Deployment environment. Can be sandbox or production." + value: production + name: DEPLOYMENT_ENVIRONMENT + required: true +- description: "Name for the 3scale API Gateway" + value: apicast + name: APICAST_NAME + required: true +- description: "DNS Resolver for openresty, if empty it will be autodiscovered" + value: + name: RESOLVER + required: false +- description: "Subset of services to run. Use comma separated list of service ids (eg. 42,1337)" + value: + name: SERVICES_LIST + required: false +- name: CONFIGURATION_LOADER + description: "When to load configuration. If on gateway start or incoming request. Allowed values are: lazy, boot." + value: boot + required: false +- description: "Log level. One of the following: debug, info, notice, warn, error, crit, alert, or emerg." + name: LOG_LEVEL + required: false +- description: "Enable path routing. Experimental feature." + name: PATH_ROUTING + required: false + value: "false" +- description: "Enable logging response codes to 3scale." + value: "false" + name: RESPONSE_CODES + required: false +- name: CONFIGURATION_CACHE + description: "For how long to cache the downloaded configuration in seconds. Can be left empty, 0 or greater than 60." + value: "" + required: false +- description: "Redis URL. Required for OAuth2 integration. ex: redis://PASSWORD@127.0.0.1:6379/0" + name: REDIS_URL + required: false +- name: MANAGEMENT_API + description: "Scope of the Management API. Can be disabled, status or debug. At least status required for health checks." + required: false + value: "status" +- name: OPENSSL_VERIFY + description: "Turn on/off the OpenSSL peer verification. Can be set to true/false." + required: true + value: "false" diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/cakephp-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/cakephp-mysql-persistent.json index eb3d296be..6d987ee33 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/cakephp-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/cakephp-mysql-persistent.json @@ -60,7 +60,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -510,7 +513,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/cakephp-mysql.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/cakephp-mysql.json index da2454d2e..fb2ef206e 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/cakephp-mysql.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/cakephp-mysql.json @@ -60,7 +60,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -484,7 +487,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dancer-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dancer-mysql-persistent.json index 81ae63416..7ffb25e14 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dancer-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dancer-mysql-persistent.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -147,6 +150,9 @@ } }, "spec": { + "strategy": { + "type": "Recreate" + }, "triggers": [ { "type": "ImageChange", @@ -472,7 +478,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dancer-mysql.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dancer-mysql.json index 7a285dba8..d787e376b 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dancer-mysql.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dancer-mysql.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -147,6 +150,9 @@ } }, "spec": { + "strategy": { + "type": "Recreate" + }, "triggers": [ { "type": "ImageChange", @@ -446,7 +452,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/django-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/django-postgresql-persistent.json index 9f982c286..a2070207b 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/django-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/django-postgresql-persistent.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -148,7 +151,7 @@ }, "spec": { "strategy": { - "type": "Rolling" + "type": "Recreate" }, "triggers": [ { @@ -479,7 +482,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/django-postgresql.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/django-postgresql.json index 7bee85ddd..0d33c6e0e 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/django-postgresql.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/django-postgresql.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -148,7 +151,7 @@ }, "spec": { "strategy": { - "type": "Rolling" + "type": "Recreate" }, "triggers": [ { @@ -453,7 +456,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dotnet-example.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dotnet-example.json index a09d71a00..af46579c8 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dotnet-example.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/dotnet-example.json @@ -4,7 +4,7 @@ "metadata": { "name": "dotnet-example", "annotations": { - "openshift.io/display-name": ".NET Core", + "openshift.io/display-name": ".NET Core Example", "description": "An example .NET Core application.", "tags": "quickstart,dotnet,.net", "iconClass": "icon-dotnet", diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/httpd.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/httpd.json new file mode 100644 index 000000000..ac671cc06 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/httpd.json @@ -0,0 +1,274 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "name": "httpd-example", + "annotations": { + "openshift.io/display-name": "Httpd", + "description": "An example Httpd application that serves static content. For more information about using this template, including OpenShift considerations, see https://github.com/openshift/httpd-ex/blob/master/README.md.", + "tags": "quickstart,httpd", + "iconClass": "icon-apache", + "template.openshift.io/long-description": "This template defines resources needed to develop a static application served by httpd, including a build configuration and application deployment configuration.", + "template.openshift.io/provider-display-name": "Red Hat, Inc.", + "template.openshift.io/documentation-url": "https://github.com/openshift/httpd-ex", + "template.openshift.io/support-url": "https://access.redhat.com" + } + }, + "message": "The following service(s) have been created in your project: ${NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/openshift/httpd-ex/blob/master/README.md.", + "labels": { + "template": "httpd-example" + }, + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Exposes and load balances the application pods" + } + }, + "spec": { + "ports": [ + { + "name": "web", + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "name": "${NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } + }, + "spec": { + "host": "${APPLICATION_DOMAIN}", + "to": { + "kind": "Service", + "name": "${NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Keeps track of changes in the application image" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Defines how to build the application" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${NAMESPACE}", + "name": "httpd:2.4" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${NAME}:latest" + } + }, + "triggers": [ + { + "type": "ImageChange" + }, + { + "type": "ConfigChange" + }, + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Defines how to deploy the application server" + } + }, + "spec": { + "strategy": { + "type": "Rolling" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "httpd-example" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "name": "${NAME}" + }, + "template": { + "metadata": { + "name": "${NAME}", + "labels": { + "name": "${NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "httpd-example", + "image": " ", + "ports": [ + { + "containerPort": 8080 + } + ], + "readinessProbe": { + "timeoutSeconds": 3, + "initialDelaySeconds": 3, + "httpGet": { + "path": "/", + "port": 8080 + } + }, + "livenessProbe": { + "timeoutSeconds": 3, + "initialDelaySeconds": 30, + "httpGet": { + "path": "/", + "port": 8080 + } + }, + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "env": [ + ], + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ], + "parameters": [ + { + "name": "NAME", + "displayName": "Name", + "description": "The name assigned to all of the frontend objects defined in this template.", + "required": true, + "value": "httpd-example" + }, + { + "name": "NAMESPACE", + "displayName": "Namespace", + "description": "The OpenShift Namespace where the ImageStream resides.", + "required": true, + "value": "openshift" + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory Limit", + "description": "Maximum amount of memory the container can use.", + "required": true, + "value": "512Mi" + }, + { + "name": "SOURCE_REPOSITORY_URL", + "displayName": "Git Repository URL", + "description": "The URL of the repository with your application source code.", + "required": true, + "value": "https://github.com/openshift/httpd-ex.git" + }, + { + "name": "SOURCE_REPOSITORY_REF", + "displayName": "Git Reference", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "CONTEXT_DIR", + "displayName": "Context Directory", + "description": "Set this to the relative path to your project if it is not in the root of your repository." + }, + { + "name": "APPLICATION_DOMAIN", + "displayName": "Application Hostname", + "description": "The exposed hostname that will route to the httpd service, if left blank a value will be defaulted.", + "value": "" + }, + { + "name": "GITHUB_WEBHOOK_SECRET", + "displayName": "GitHub Webhook Secret", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", + "generate": "expression", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "GENERIC_WEBHOOK_SECRET", + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "generate": "expression", + "from": "[a-zA-Z0-9]{40}" + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/jenkins-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/jenkins-ephemeral-template.json index 264e4b2de..ce96684a9 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/jenkins-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/jenkins-ephemeral-template.json @@ -22,7 +22,10 @@ "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "to": { diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/jenkins-persistent-template.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/jenkins-persistent-template.json index b47bdf353..34b2b920b 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/jenkins-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/jenkins-persistent-template.json @@ -22,7 +22,10 @@ "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "to": { diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/nodejs-mongodb-persistent.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/nodejs-mongodb-persistent.json index 6ee999cb1..a9c365361 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/nodejs-mongodb-persistent.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/nodejs-mongodb-persistent.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -102,7 +105,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", - "name": "nodejs:4" + "name": "nodejs:6" }, "env": [ { @@ -154,7 +157,7 @@ }, "spec": { "strategy": { - "type": "Rolling" + "type": "Recreate" }, "triggers": [ { @@ -491,7 +494,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/nodejs-mongodb.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/nodejs-mongodb.json index 5c177a7e0..53a6147d5 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/nodejs-mongodb.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/nodejs-mongodb.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -102,7 +105,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", - "name": "nodejs:4" + "name": "nodejs:6" }, "env": [ { @@ -154,7 +157,7 @@ }, "spec": { "strategy": { - "type": "Rolling" + "type": "Recreate" }, "triggers": [ { @@ -467,7 +470,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/pvc.yml b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/pvc.yml new file mode 100644 index 000000000..0bbb8e625 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/pvc.yml @@ -0,0 +1,49 @@ +apiVersion: v1 +kind: Template +metadata: + name: "amp-pvc" +objects: + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "system-storage" + spec: + accessModes: + - "ReadWriteMany" + resources: + requests: + storage: "100Mi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "mysql-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "system-redis-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "backend-redis-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/rails-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/rails-postgresql-persistent.json index b400cfdb3..f07a43071 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/rails-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/rails-postgresql-persistent.json @@ -23,7 +23,11 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['application-user']}", + "template.openshift.io/expose-password": "{.data['application-password']}" + } }, "stringData" : { "database-user" : "${DATABASE_USER}", @@ -60,7 +64,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -526,7 +533,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/rails-postgresql.json b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/rails-postgresql.json index fa67412ff..a7992c988 100644 --- a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/rails-postgresql.json +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/rails-postgresql.json @@ -23,7 +23,11 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['application-user']}", + "template.openshift.io/expose-password": "{.data['application-password']}" + } }, "stringData" : { "database-user" : "${DATABASE_USER}", @@ -60,7 +64,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -500,7 +507,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.5/quickstart-templates/wildcard.yml b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/wildcard.yml new file mode 100644 index 000000000..00dedecd5 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.5/quickstart-templates/wildcard.yml @@ -0,0 +1,158 @@ +apiVersion: v1 +kind: Template +metadata: + name: "amp-apicast-wildcard-router" +objects: + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: apicast-router + spec: + replicas: 1 + selector: + deploymentconfig: apicast-router + strategy: + type: Rolling + template: + metadata: + labels: + deploymentconfig: apicast-router + spec: + volumes: + - name: apicast-router-config + configMap: + name: apicast-router-config + items: + - key: router.conf + path: router.conf + containers: + - env: + - name: APICAST_CONFIGURATION_LOADER + value: "lazy" + - name: APICAST_CONFIGURATION_CACHE + value: "0" + image: 3scale-amp20/apicast-gateway:1.0-3 + imagePullPolicy: IfNotPresent + name: apicast-router + command: ['bin/apicast'] + livenessProbe: + tcpSocket: + port: router + initialDelaySeconds: 5 + timeoutSeconds: 5 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /status/ready + port: management + initialDelaySeconds: 5 + timeoutSeconds: 5 + periodSeconds: 30 + volumeMounts: + - name: apicast-router-config + mountPath: /opt/app-root/src/sites.d/ + readOnly: true + ports: + - containerPort: 8082 + name: router + protocol: TCP + - containerPort: 8090 + name: management + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: apicast-router + spec: + ports: + - name: router + port: 80 + protocol: TCP + targetPort: router + selector: + deploymentconfig: apicast-router + +- apiVersion: v1 + kind: ConfigMap + metadata: + name: apicast-router-config + data: + router.conf: |- + upstream wildcard { + server 0.0.0.1:1; + + balancer_by_lua_block { + local round_robin = require 'resty.balancer.round_robin' + local balancer = round_robin.new() + local peers = balancer:peers(ngx.ctx.apicast) + + local peer, err = balancer:set_peer(peers) + + if not peer then + ngx.status = ngx.HTTP_SERVICE_UNAVAILABLE + ngx.log(ngx.ERR, "failed to set current backend peer: ", err) + ngx.exit(ngx.status) + end + } + + keepalive 1024; + } + + server { + listen 8082; + server_name ~-(?apicast-(staging|production))\.; + access_log /dev/stdout combined; + + location / { + access_by_lua_block { + local resolver = require('resty.resolver'):instance() + local servers = resolver:get_servers(ngx.var.apicast, { port = 8080 }) + + if #servers == 0 then + ngx.status = ngx.HTTP_BAD_GATEWAY + ngx.exit(ngx.HTTP_OK) + end + + ngx.ctx.apicast = servers + } + proxy_http_version 1.1; + proxy_pass $scheme://wildcard; + proxy_set_header Host $host; + proxy_set_header Connection ""; + } + } + +- apiVersion: v1 + kind: Route + metadata: + name: apicast-wildcard-router + labels: + app: apicast-wildcard-router + spec: + host: apicast-${TENANT_NAME}.${WILDCARD_DOMAIN} + to: + kind: Service + name: apicast-router + port: + targetPort: router + wildcardPolicy: Subdomain + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +parameters: +- name: AMP_RELEASE + description: "AMP release tag." + value: 2.0.0-CR2-redhat-1 + required: true +- name: WILDCARD_DOMAIN + description: Root domain for the wildcard routes. Eg. example.com will generate 3scale-admin.example.com. + required: true +- name: TENANT_NAME + description: "Domain name under the root that Admin UI will be available with -admin suffix." + required: true + value: "3scale" -- cgit v1.2.3 From 3e4d73be7e6b2b3eb5cbb736a989a318de904a45 Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 30 Jun 2017 11:24:42 -0400 Subject: xPaaS v1.4.0 for v3.4 --- .../v1.4/xpaas-streams/jboss-image-streams.json | 403 +++++++++-- .../examples/v1.4/xpaas-templates/amq62-basic.json | 21 +- .../v1.4/xpaas-templates/amq62-persistent-ssl.json | 30 +- .../v1.4/xpaas-templates/amq62-persistent.json | 25 +- .../examples/v1.4/xpaas-templates/amq62-ssl.json | 26 +- .../v1.4/xpaas-templates/datagrid65-basic.json | 50 +- .../v1.4/xpaas-templates/datagrid65-https.json | 59 +- .../datagrid65-mysql-persistent.json | 93 ++- .../v1.4/xpaas-templates/datagrid65-mysql.json | 92 ++- .../datagrid65-postgresql-persistent.json | 84 ++- .../xpaas-templates/datagrid65-postgresql.json | 83 ++- .../v1.4/xpaas-templates/datavirt63-basic-s2i.json | 73 +- .../datavirt63-extensions-support-s2i.json | 63 +- .../xpaas-templates/datavirt63-secure-s2i.json | 308 +++++++- .../xpaas-templates/decisionserver62-amq-s2i.json | 40 +- .../decisionserver62-basic-s2i.json | 20 +- .../decisionserver62-https-s2i.json | 27 +- .../xpaas-templates/decisionserver63-amq-s2i.json | 66 +- .../decisionserver63-basic-s2i.json | 45 +- .../decisionserver63-https-s2i.json | 52 +- .../xpaas-templates/eap64-amq-persistent-s2i.json | 75 +- .../v1.4/xpaas-templates/eap64-amq-s2i.json | 71 +- .../v1.4/xpaas-templates/eap64-basic-s2i.json | 44 +- .../v1.4/xpaas-templates/eap64-https-s2i.json | 55 +- .../eap64-mongodb-persistent-s2i.json | 86 ++- .../v1.4/xpaas-templates/eap64-mongodb-s2i.json | 85 ++- .../eap64-mysql-persistent-s2i.json | 87 ++- .../v1.4/xpaas-templates/eap64-mysql-s2i.json | 86 ++- .../eap64-postgresql-persistent-s2i.json | 84 ++- .../v1.4/xpaas-templates/eap64-postgresql-s2i.json | 83 ++- .../v1.4/xpaas-templates/eap64-sso-s2i.json | 72 +- .../xpaas-templates/eap64-third-party-db-s2i.json | 646 +++++++++++++++++ .../xpaas-templates/eap70-amq-persistent-s2i.json | 75 +- .../v1.4/xpaas-templates/eap70-amq-s2i.json | 71 +- .../v1.4/xpaas-templates/eap70-basic-s2i.json | 44 +- .../v1.4/xpaas-templates/eap70-https-s2i.json | 55 +- .../eap70-mongodb-persistent-s2i.json | 86 ++- .../v1.4/xpaas-templates/eap70-mongodb-s2i.json | 85 ++- .../eap70-mysql-persistent-s2i.json | 87 ++- .../v1.4/xpaas-templates/eap70-mysql-s2i.json | 86 ++- .../eap70-postgresql-persistent-s2i.json | 84 ++- .../v1.4/xpaas-templates/eap70-postgresql-s2i.json | 83 ++- .../v1.4/xpaas-templates/eap70-sso-s2i.json | 74 +- .../xpaas-templates/eap70-third-party-db-s2i.json | 657 +++++++++++++++++ .../xpaas-templates/jws30-tomcat7-basic-s2i.json | 43 +- .../xpaas-templates/jws30-tomcat7-https-s2i.json | 48 +- .../jws30-tomcat7-mongodb-persistent-s2i.json | 77 +- .../xpaas-templates/jws30-tomcat7-mongodb-s2i.json | 76 +- .../jws30-tomcat7-mysql-persistent-s2i.json | 78 +- .../xpaas-templates/jws30-tomcat7-mysql-s2i.json | 77 +- .../jws30-tomcat7-postgresql-persistent-s2i.json | 75 +- .../jws30-tomcat7-postgresql-s2i.json | 74 +- .../xpaas-templates/jws30-tomcat8-basic-s2i.json | 43 +- .../xpaas-templates/jws30-tomcat8-https-s2i.json | 48 +- .../jws30-tomcat8-mongodb-persistent-s2i.json | 77 +- .../xpaas-templates/jws30-tomcat8-mongodb-s2i.json | 76 +- .../jws30-tomcat8-mysql-persistent-s2i.json | 78 +- .../xpaas-templates/jws30-tomcat8-mysql-s2i.json | 77 +- .../jws30-tomcat8-postgresql-persistent-s2i.json | 75 +- .../jws30-tomcat8-postgresql-s2i.json | 74 +- .../xpaas-templates/openjdk18-web-basic-s2i.json | 7 +- .../processserver63-amq-mysql-persistent-s2i.json | 93 ++- .../processserver63-amq-mysql-s2i.json | 91 ++- ...cessserver63-amq-postgresql-persistent-s2i.json | 90 ++- .../processserver63-amq-postgresql-s2i.json | 88 ++- .../xpaas-templates/processserver63-basic-s2i.json | 46 +- .../processserver63-mysql-persistent-s2i.json | 82 ++- .../xpaas-templates/processserver63-mysql-s2i.json | 81 ++- .../processserver63-postgresql-persistent-s2i.json | 79 +- .../processserver63-postgresql-s2i.json | 78 +- .../examples/v1.4/xpaas-templates/sso70-https.json | 50 +- .../xpaas-templates/sso70-mysql-persistent.json | 75 +- .../examples/v1.4/xpaas-templates/sso70-mysql.json | 78 +- .../sso70-postgresql-persistent.json | 72 +- .../v1.4/xpaas-templates/sso70-postgresql.json | 71 +- .../examples/v1.4/xpaas-templates/sso71-https.json | 544 ++++++++++++++ .../xpaas-templates/sso71-mysql-persistent.json | 799 +++++++++++++++++++++ .../examples/v1.4/xpaas-templates/sso71-mysql.json | 767 ++++++++++++++++++++ .../sso71-postgresql-persistent.json | 773 ++++++++++++++++++++ .../v1.4/xpaas-templates/sso71-postgresql.json | 741 +++++++++++++++++++ 80 files changed, 9869 insertions(+), 553 deletions(-) create mode 100644 roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-third-party-db-s2i.json create mode 100644 roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-third-party-db-s2i.json create mode 100644 roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-https.json create mode 100644 roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-mysql-persistent.json create mode 100644 roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-mysql.json create mode 100644 roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-postgresql-persistent.json create mode 100644 roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-postgresql.json diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-streams/jboss-image-streams.json b/roles/openshift_examples/files/examples/v1.4/xpaas-streams/jboss-image-streams.json index 049f3f884..f77c1080c 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-streams/jboss-image-streams.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-streams/jboss-image-streams.json @@ -12,7 +12,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-webserver30-tomcat7-openshift" + "name": "jboss-webserver30-tomcat7-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat7-openshift", @@ -23,10 +26,11 @@ "description": "JBoss Web Server 3.0 Tomcat 7 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat7,java,jboss,xpaas", - "supports":"tomcat7:3.0,tomcat:7,java:8,xpaas:1.1", + "supports": "tomcat7:3.0,tomcat:7,java:8,xpaas:1.1", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.1" + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7" } }, { @@ -35,10 +39,23 @@ "description": "JBoss Web Server 3.0 Tomcat 7 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat7,java,jboss,xpaas", - "supports":"tomcat7:3.0,tomcat:7,java:8,xpaas:1.2", + "supports": "tomcat7:3.0,tomcat:7,java:8,xpaas:1.2", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Web Server 3.0 Tomcat 7 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,tomcat,tomcat7,java,jboss,xpaas", + "supports":"tomcat7:3.0,tomcat:7,java:8,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.3" } } ] @@ -48,7 +65,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-webserver30-tomcat8-openshift" + "name": "jboss-webserver30-tomcat8-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat8-openshift", @@ -59,10 +79,11 @@ "description": "JBoss Web Server 3.0 Tomcat 8 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat8,java,jboss,xpaas", - "supports":"tomcat8:3.0,tomcat:8,java:8,xpaas:1.1", + "supports": "tomcat8:3.0,tomcat:8,java:8,xpaas:1.1", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.1" + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8" } }, { @@ -71,10 +92,23 @@ "description": "JBoss Web Server 3.0 Tomcat 8 S2I images.", "iconClass": "icon-jboss", "tags": "builder,tomcat,tomcat8,java,jboss,xpaas", - "supports":"tomcat8:3.0,tomcat:8,java:8,xpaas:1.2", + "supports": "tomcat8:3.0,tomcat:8,java:8,xpaas:1.2", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "tomcat-websocket-chat", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Web Server 3.0 Tomcat 8 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,tomcat,tomcat8,java,jboss,xpaas", + "supports":"tomcat8:3.0,tomcat:8,java:8,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.3" } } ] @@ -84,7 +118,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-eap64-openshift" + "name": "jboss-eap64-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-eap-6/eap64-openshift", @@ -95,11 +132,12 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.1", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.1", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.1" + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" } }, { @@ -108,11 +146,12 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.2", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.2", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" } }, { @@ -121,11 +160,12 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.3", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.3", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.3" + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" } }, { @@ -134,11 +174,25 @@ "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:6.4,javaee:6,java:8,xpaas:1.4", + "supports": "eap:6.4,javaee:6,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "6.4.x", - "version": "1.4" + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4" + } + }, + { + "name": "1.5", + "annotations": { + "description": "JBoss EAP 6.4 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,eap,javaee,java,jboss,xpaas", + "supports":"eap:6.4,javaee:6,java:8,xpaas:1.5", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "6.4.x", + "version": "1.5" } } ] @@ -148,7 +202,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-eap70-openshift" + "name": "jboss-eap70-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-eap-7/eap70-openshift", @@ -159,11 +216,12 @@ "description": "JBoss EAP 7.0 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:7.0,javaee:7,java:8,xpaas:1.3", + "supports": "eap:7.0,javaee:7,java:8,xpaas:1.3", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "7.0.0.GA", - "version": "1.3" + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" } }, { @@ -172,11 +230,25 @@ "description": "JBoss EAP 7.0 S2I images.", "iconClass": "icon-jboss", "tags": "builder,eap,javaee,java,jboss,xpaas", - "supports":"eap:7.0,javaee:7,java:8,xpaas:1.4", + "supports": "eap:7.0,javaee:7,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "7.0.0.GA", - "version": "1.4" + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + } + }, + { + "name": "1.5", + "annotations": { + "description": "JBoss EAP 7.0 S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,eap,javaee,java,jboss,xpaas", + "supports":"eap:7.0,javaee:7,java:8,xpaas:1.5", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.0.0.GA", + "version": "1.5" } } ] @@ -186,7 +258,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-decisionserver62-openshift" + "name": "jboss-decisionserver62-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-decisionserver-6/decisionserver62-openshift", @@ -196,12 +271,13 @@ "annotations": { "description": "Red Hat JBoss BRMS 6.2 decision server S2I images.", "iconClass": "icon-jboss", - "tags": "builder,decisionserver,java,xpaas", - "supports":"decisionserver:6.2,java:8,xpaas:1.2", + "tags": "builder,decisionserver,xpaas", + "supports": "decisionserver:6.2,xpaas:1.2", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "decisionserver/hellorules", "sampleRef": "1.2", - "version": "1.2" + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server" } } ] @@ -211,22 +287,39 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-decisionserver63-openshift" + "name": "jboss-decisionserver63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-decisionserver-6/decisionserver63-openshift", "tags": [ { "name": "1.3", + "annotations": { + "description": "Red Hat JBoss BRMS 6.3 decision server S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,decisionserver,xpaas", + "supports": "decisionserver:6.3,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "decisionserver/hellorules", + "sampleRef": "1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server" + } + }, + { + "name": "1.4", "annotations": { "description": "Red Hat JBoss BRMS 6.3 decision server S2I images.", "iconClass": "icon-jboss", "tags": "builder,decisionserver,java,xpaas", - "supports":"decisionserver:6.3,java:8,xpaas:1.3", + "supports":"decisionserver:6.3,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "decisionserver/hellorules", "sampleRef": "1.3", - "version": "1.3" + "version": "1.4" } } ] @@ -236,22 +329,39 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-processserver63-openshift" + "name": "jboss-processserver63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-processserver-6/processserver63-openshift", "tags": [ { "name": "1.3", + "annotations": { + "description": "Red Hat JBoss BPM Suite 6.3 intelligent process server S2I images.", + "iconClass": "icon-jboss", + "tags": "builder,processserver,xpaas", + "supports": "processserver:6.3,xpaas:1.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "processserver/library", + "sampleRef": "1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server" + } + }, + { + "name": "1.4", "annotations": { "description": "Red Hat JBoss BPM Suite 6.3 intelligent process server S2I images.", "iconClass": "icon-jboss", "tags": "builder,processserver,java,xpaas", - "supports":"processserver:6.3,java:8,xpaas:1.3", + "supports":"processserver:6.3,java:8,xpaas:1.4", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", "sampleContextDir": "processserver/library", "sampleRef": "1.3", - "version": "1.3" + "version": "1.4" } } ] @@ -261,7 +371,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-datagrid65-openshift" + "name": "jboss-datagrid65-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-datagrid-6/datagrid65-openshift", @@ -271,9 +384,31 @@ "annotations": { "description": "JBoss Data Grid 6.5 S2I images.", "iconClass": "icon-jboss", - "tags": "datagrid,java,jboss,xpaas", - "supports":"datagrid:6.5,java:8,xpaas:1.2", - "version": "1.2" + "tags": "datagrid,jboss,xpaas", + "supports": "datagrid:6.5,xpaas:1.2", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-jboss", + "tags": "datagrid,jboss,xpaas", + "supports": "datagrid:6.5,xpaas:1.4", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + } + }, + { + "name": "1.4", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-jboss", + "tags": "datagrid,jboss,xpaas", + "supports":"datagrid:6.5,xpaas:1.4", + "version": "1.4" } } ] @@ -283,7 +418,35 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-datavirt63-openshift" + "name": "jboss-datagrid65-client-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 Client Modules for EAP" + } + }, + "spec": { + "dockerImageRepository": "registry.access.redhat.com/jboss-datagrid-6/datagrid65-client-openshift", + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Data Grid 6.5 Client Modules for EAP.", + "iconClass": "icon-jboss", + "tags": "client,jboss,xpaas", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 Client Modules for EAP" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datavirt63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-datavirt-6/datavirt63-openshift", @@ -293,9 +456,56 @@ "annotations": { "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", "iconClass": "icon-jboss", - "tags": "datavirt,java,jboss,xpaas", - "supports":"datavirt:6.3,java:8,xpaas:1.4", - "version": "1.0" + "tags": "datavirt,jboss,xpaas", + "supports": "datavirt:6.3,xpaas:1.4", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-jboss", + "tags": "datavirt,jboss,xpaas", + "supports": "datavirt:6.3,xpaas:1.4", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-jboss", + "tags": "datavirt,jboss,xpaas", + "supports":"datavirt:6.3,xpaas:1.4", + "version": "1.2" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datavirt63-driver-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP" + } + }, + "spec": { + "dockerImageRepository": "registry.access.redhat.com/jboss-datavirt-6/datavirt63-driver-openshift", + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP.", + "iconClass": "icon-jboss", + "tags": "client,jboss,xpaas", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP" } } ] @@ -305,7 +515,10 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-amq-62" + "name": "jboss-amq-62", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/jboss-amq-6/amq62-openshift", @@ -316,8 +529,9 @@ "description": "JBoss A-MQ 6.2 broker image.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "supports":"amq:6.2,messaging,xpaas:1.1", - "version": "1.1" + "supports": "amq:6.2,messaging,xpaas:1.1", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" } }, { @@ -326,8 +540,9 @@ "description": "JBoss A-MQ 6.2 broker image.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "supports":"amq:6.2,messaging,xpaas:1.2", - "version": "1.2" + "supports": "amq:6.2,messaging,xpaas:1.2", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" } }, { @@ -336,8 +551,19 @@ "description": "JBoss A-MQ 6.2 broker image.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "supports":"amq:6.2,messaging,xpaas:1.3", - "version": "1.3" + "supports": "amq:6.2,messaging,xpaas:1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + } + }, + { + "name": "1.4", + "annotations": { + "description": "JBoss A-MQ 6.2 broker image.", + "iconClass": "icon-jboss", + "tags": "messaging,amq,jboss,xpaas", + "supports":"amq:6.2,messaging,xpaas:1.4", + "version": "1.4" } } ] @@ -348,8 +574,9 @@ "apiVersion": "v1", "metadata": { "name": "redhat-sso70-openshift", - "annotations": { - "description": "Red Hat SSO 7.0" + "annotations": { + "description": "Red Hat SSO 7.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" } }, "spec": { @@ -361,8 +588,20 @@ "description": "Red Hat SSO 7.0", "iconClass": "icon-jboss", "tags": "sso,keycloak,redhat", - "supports":"sso:7.0,xpaas:1.3", - "version": "1.3" + "supports": "sso:7.0,xpaas:1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" + } + }, + { + "name": "1.4", + "annotations": { + "description": "Red Hat SSO 7.0", + "iconClass": "icon-jboss", + "tags": "sso,keycloak,redhat", + "supports": "sso:7.0,xpaas:1.4", + "version": "1.4", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" } } ] @@ -372,7 +611,48 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "redhat-openjdk18-openshift" + "name": "redhat-sso71-openshift", + "annotations": { + "description": "Red Hat SSO 7.1", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + } + }, + "spec": { + "dockerImageRepository": "registry.access.redhat.com/redhat-sso-7/sso71-openshift", + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat SSO 7.1", + "iconClass": "icon-jboss", + "tags": "sso,keycloak,redhat", + "supports": "sso:7.1,xpaas:1.4", + "version": "1.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat SSO 7.1", + "iconClass": "icon-jboss", + "tags": "sso,keycloak,redhat", + "supports": "sso:7.1,xpaas:1.4", + "version": "1.1", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redhat-openjdk18-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8" + } }, "spec": { "dockerImageRepository": "registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift", @@ -384,11 +664,24 @@ "description": "Build and run Java applications using Maven and OpenJDK 8.", "iconClass": "icon-jboss", "tags": "builder,java,xpaas,openjdk", - "supports":"java:8,xpaas:1.0", + "supports": "java:8,xpaas:1.0", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", "sampleContextDir": "undertow-servlet", "version": "1.0" } + }, + { + "name": "1.1", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-jboss", + "tags": "builder,java,xpaas,openjdk", + "supports": "java:8,xpaas:1.4", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "1.1" + } } ] } diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-basic.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-basic.json index ab35afead..af20b373a 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-basic.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-basic.json @@ -6,46 +6,54 @@ "description": "Application template for JBoss A-MQ brokers. These can be deployed as standalone or in a mesh. This template doesn't feature SSL support.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Ephemeral, no SSL)" }, "name": "amq62-basic" }, "labels": { "template": "amq62-basic", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -53,6 +61,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,18 +69,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -171,7 +183,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire port." + "description": "The broker's OpenWire port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"}]" } } }, @@ -202,7 +215,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-persistent-ssl.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-persistent-ssl.json index c12f06dec..5acdbfabf 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-persistent-ssl.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-persistent-ssl.json @@ -6,58 +6,68 @@ "description": "Application template for JBoss A-MQ brokers. These are deployed as standalone and use persistent storage for saving messages. This template supports SSL and requires usage of OpenShift secrets.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Persistent with SSL)" }, "name": "amq62-persistent-ssl" }, "labels": { "template": "amq62-persistent-ssl", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new persistent messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"amq-service-account\" service account and a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -65,6 +75,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -72,48 +83,56 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "Secret Name", "description": "Name of a secret containing SSL related files", "name": "AMQ_SECRET", "value": "amq-app-secret", "required": true }, { + "displayName": "Trust Store Filename", "description": "SSL trust store filename", "name": "AMQ_TRUSTSTORE", "value": "broker.ts", "required": true }, { + "displayName": "Trust Store Password", "description": "SSL trust store password", "name": "AMQ_TRUSTSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Keystore Filename", "description": "SSL key store filename", "name": "AMQ_KEYSTORE", "value": "broker.ks", "required": true }, { + "displayName": "A-MQ Keystore Password", "description": "Password for accessing SSL keystore", "name": "AMQ_KEYSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -309,7 +328,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire (SSL) port." + "description": "The broker's OpenWire (SSL) port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp-ssl\", \"kind\": \"Service\"}]" } } }, @@ -340,7 +360,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-persistent.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-persistent.json index 897ce0395..b8089cd6d 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-persistent.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-persistent.json @@ -6,58 +6,68 @@ "description": "Application template for JBoss A-MQ brokers. These can be deployed as standalone and use persistent storage for saving messages. This template doesn't feature SSL support.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Persistent, no SSL)" }, "name": "amq62-persistent" }, "labels": { "template": "amq62-persistent", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new persistent messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -65,6 +75,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -72,18 +83,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -183,7 +197,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire port." + "description": "The broker's OpenWire port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"}]" } } }, @@ -214,7 +229,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-ssl.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-ssl.json index 97d110286..b52fdbfb0 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-ssl.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/amq62-ssl.json @@ -6,46 +6,54 @@ "description": "Application template for JBoss A-MQ brokers. These can be deployed as standalone or in a mesh. This template supports SSL and requires usage of OpenShift secrets.", "iconClass": "icon-jboss", "tags": "messaging,amq,jboss,xpaas", - "version": "1.3.1" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2 (Ephemeral with SSL)" }, "name": "amq62-ssl" }, "labels": { "template": "amq62-ssl", - "xpaas": "1.3.1" + "xpaas": "1.4.0" }, + "message": "A new messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"amq-service-account\" service account and a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "broker", "required": true }, { + "displayName": "A-MQ Protocols", "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. SSL variants of these protocols will be configured automaticaly.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -53,6 +61,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,48 +69,56 @@ "required": false }, { + "displayName": "Secret Name", "description": "Name of a secret containing SSL related files", "name": "AMQ_SECRET", "value": "amq-app-secret", "required": true }, { + "displayName": "Trust Store Filename", "description": "SSL trust store filename", "name": "AMQ_TRUSTSTORE", "value": "broker.ts", "required": true }, { + "displayName": "Trust Store Password", "description": "SSL trust store password", "name": "AMQ_TRUSTSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Keystore Filename", "description": "SSL key store filename", "name": "AMQ_KEYSTORE", "value": "broker.ks", "required": true }, { + "displayName": "A-MQ Keystore Password", "description": "Password for accessing SSL keystore", "name": "AMQ_KEYSTORE_PASSWORD", "value": "", "required": true }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -297,7 +314,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's OpenWire (SSL) port." + "description": "The broker's OpenWire (SSL) port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp-ssl\", \"kind\": \"Service\"}]" } } }, @@ -328,7 +346,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-basic.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-basic.json index 56e76016f..32433bef0 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-basic.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-basic.json @@ -6,76 +6,103 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 applications.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 (Ephemeral, no https)" }, "name": "datagrid65-basic" }, "labels": { "template": "datagrid65-basic", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -200,7 +227,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -267,9 +294,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -301,6 +333,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-https.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-https.json index 639ac2e11..e6f020400 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-https.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-https.json @@ -6,130 +6,166 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 applications.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 (Ephemeral with https)" }, "name": "datagrid65-https" }, "labels": { "template": "datagrid65-https", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -301,7 +337,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -386,9 +422,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -436,6 +477,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-mysql-persistent.json index 22ca3f0a0..ff57a7936 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-mysql-persistent.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and MySQL applications with persistent storage.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + MySQL (Persistent with https)" }, "name": "datagrid65-mysql-persistent" }, "labels": { "template": "datagrid65-mysql-persistent", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using MySQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:/jboss/datasources/mysql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,117 +111,158 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -230,7 +286,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -254,7 +311,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -278,7 +336,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Memcached service for clustered applications." + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -302,7 +361,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Hot Rod service for clustered applications." + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -397,7 +457,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -482,9 +542,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -584,6 +649,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -669,7 +742,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-mysql.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-mysql.json index e1a585d24..44902de25 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-mysql.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-mysql.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and MySQL applications.", "tags": "datagrid,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + MySQL (Ephemeral with https)" }, "name": "datagrid65-mysql" }, "labels": { "template": "datagrid65-mysql", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using MySQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:/jboss/datasources/mysql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,111 +111,151 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -224,7 +279,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -248,7 +304,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +329,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Memcached service for clustered applications." + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -296,7 +354,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Hot Rod service for clustered applications." + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -391,7 +450,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -476,9 +535,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -578,6 +642,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -663,7 +735,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-postgresql-persistent.json index 12720eb19..6b90e1370 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-postgresql-persistent.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and PostgreSQL applications with persistent storage.", "tags": "datagrid,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + PostgreSQL (Persistent with https)" }, "name": "datagrid65-postgresql-persistent" }, "labels": { "template": "datagrid65-postgresql-persistent", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using PostgreSQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/postgresql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,102 +111,140 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -215,7 +268,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -239,7 +293,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -382,7 +437,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -467,9 +522,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -569,6 +629,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -654,7 +722,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-postgresql.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-postgresql.json index da8015fb0..ae36376db 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-postgresql.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datagrid65-postgresql.json @@ -6,82 +6,96 @@ "iconClass": "icon-jboss", "description": "Application template for JDG 6.5 and PostgreSQL applications built using.", "tags": "datagrid,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 + PostgreSQL (Ephemeral with https)" }, "name": "datagrid65-postgresql" }, "labels": { "template": "datagrid65-postgresql", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new data grid service (using PostgreSQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"datagrid-service-account\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "datagrid-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Username", "description": "User name for JDG user.", "name": "USERNAME", "value": "", "required": false }, { - "description": "Password for JDG user.", + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", "name": "PASSWORD", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "datagrid-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/postgresql", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -89,6 +103,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -96,96 +111,133 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "Infinispan Connectors", "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", "name": "INFINISPAN_CONNECTORS", "value": "hotrod,memcached,rest", "required": false }, { + "displayName": "Cache Names", "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configurd for each entry.", "name": "CACHE_NAMES", "value": "", "required": false }, { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", "description": "", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { + "displayName": "Memcached Cache Name", "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", "name": "MEMCACHED_CACHE", "value": "default", "required": false }, { + "displayName": "REST Security Domain", "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", "name": "REST_SECURITY_DOMAIN", "value": "", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "datagrid-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression", "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -209,7 +261,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -233,7 +286,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -376,7 +430,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid65-openshift:1.2" + "name": "jboss-datagrid65-openshift:1.4" } } }, @@ -461,9 +515,14 @@ "protocol": "TCP" }, { - "name": "hotrod", + "name": "hotrod-internal", "containerPort": 11222, "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" } ], "env": [ @@ -563,6 +622,14 @@ "name": "CACHE_NAMES", "value": "${CACHE_NAMES}" }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, { "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" @@ -648,7 +715,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-basic-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-basic-s2i.json index 7d64dac98..ea2f13742 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-basic-s2i.json @@ -6,7 +6,8 @@ "iconClass": "icon-jboss", "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I.", "tags": "jdv,datavirt,jboss,xpaas", - "version": "1.4.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3 (no SSL)" }, "name": "datavirt63-basic-s2i" }, @@ -60,6 +61,7 @@ }, { "description": "The name of the service account to use for the deployment. The service account should be configured to allow usage of the secret specified by CONFIGURATION_NAME.", + "displayName": "Service Account Name", "name": "SERVICE_ACCOUNT_NAME", "value": "datavirt-service-account", "required": true @@ -133,6 +135,27 @@ "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -215,7 +238,22 @@ "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir": "${CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.0" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + } + ] }, "strategy": { "type": "Source", @@ -224,8 +262,26 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datavirt63-openshift:1.0" - } + "name": "jboss-datavirt63-openshift:1.2" + }, + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ] } }, "output": { @@ -251,6 +307,15 @@ "type": "ImageChange", "imageChange": {} }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.0" + } + } + }, { "type": "ConfigChange" } diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-extensions-support-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-extensions-support-s2i.json index 1e7c03b99..22b579ecc 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-extensions-support-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-extensions-support-s2i.json @@ -6,7 +6,8 @@ "iconClass": "icon-jboss", "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I. Includes support for installing extensions (e.g. third-party DB drivers) and the ability to configure certificates for serving secure content.", "tags": "jdv,datavirt,jboss,xpaas", - "version": "1.4.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3 (with SSL and Extensions)" }, "name": "datavirt63-extensions-support-s2i" }, @@ -102,6 +103,7 @@ }, { "description": "The name of the service account to use for the deployment. The service account should be configured to allow usage of the secret(s) specified by CONFIGURATION_NAME, HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "displayName": "Service Account Name", "name": "SERVICE_ACCOUNT_NAME", "value": "datavirt-service-account", "required": true @@ -238,6 +240,27 @@ "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -443,6 +466,19 @@ }, "contextDir": "${CONTEXT_DIR}", "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.0" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + }, { "from": { "kind": "ImageStreamTag", @@ -464,12 +500,24 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datavirt63-openshift:1.0" + "name": "jboss-datavirt63-openshift:1.2" }, "env": [ { "name": "CUSTOM_INSTALL_DIRECTORIES", "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ] } @@ -506,6 +554,15 @@ } } }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.0" + } + } + }, { "type": "ConfigChange" } @@ -713,7 +770,7 @@ }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE", - "value": "/etc/datavirt-secret-volume/${HTTPS_KEYSTORE}" + "value": "${HTTPS_KEYSTORE}" }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE_TYPE", diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-secure-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-secure-s2i.json index 07f926ff3..9392c20a6 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-secure-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/datavirt63-secure-s2i.json @@ -6,7 +6,8 @@ "iconClass": "icon-jboss", "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I. Includes ability to configure certificates for serving secure content.", "tags": "jdv,datavirt,jboss,xpaas", - "version": "1.4.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3 (with SSL)" }, "name": "datavirt63-secure-s2i" }, @@ -74,6 +75,7 @@ }, { "description": "The name of the service account to use for the deployment. The service account should be configured to allow usage of the secret(s) specified by CONFIGURATION_NAME, HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "displayName": "Service Account Name", "name": "SERVICE_ACCOUNT_NAME", "value": "datavirt-service-account", "required": true @@ -210,6 +212,168 @@ "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", + "displayName": "SSO Server URL", + "name": "SSO_URL", + "value": "", + "required": false + }, + { + "description": "The URL for the interal SSO service, where secure-sso is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "displayName": "SSO Server Service URL", + "name": "SSO_SERVICE_URL", + "value": "", + "required": false + }, + { + "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", + "displayName": "SSO Realm", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", + "displayName": "SSO Username", + "name": "SSO_USERNAME", + "value": "", + "required": false + }, + { + "description": "The password for the SSO service user.", + "displayName": "SSO User's Password", + "name": "SSO_PASSWORD", + "value": "", + "required": false + }, + { + "description": "SSO Realm Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability. This can be retrieved from the SSO server, for the specified realm.", + "displayName": "SSO Realm Public Key", + "name": "SSO_PUBLIC_KEY", + "value": "", + "required": false + }, + { + "description": "SSO Client Access Type. true or false", + "displayName": "SSO Bearer Only", + "name": "SSO_BEARER_ONLY", + "value": "", + "required": false + }, + { + "description": "The name of the secret containing the keystore file", + "displayName": "SSO SAML Keystore Secret", + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "datavirt-app-secret", + "required": false + }, + { + "description": "The name of the keystore file within the secret", + "displayName": "SSO SAML Keystore File", + "name": "SSO_SAML_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "description": "The name associated with the server certificate", + "displayName": "SSO SAML Certificate Alias", + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "", + "required": false + }, + { + "description": "The password for the keystore and certificate", + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "displayName": "SSO SAML Keystore Password", + "value": "", + "required": false + }, + { + "description": "The SSO Client Secret for Confidential Access", + "name": "SSO_SECRET", + "displayName": "SSO Client Secret", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "description": "Enable CORS for SSO applications. true or false", + "name": "SSO_ENABLE_CORS", + "displayName": "SSO Enable CORS", + "value": "false", + "required": false + }, + { + "description": "SSO logout page for SAML applications", + "name": "SSO_SAML_LOGOUT_PAGE", + "displayName": "SSO SAML Logout Page", + "value": "/", + "required": false + }, + { + "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "displayName": "SSO Disable SSL Certificate Validation", + "value": "true", + "required": false + }, + { + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "displayName": "SSO Truststore File", + "value": "", + "required": false + }, + { + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "displayName": "SSO Truststore Password", + "value": "", + "required": false + }, + { + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "displayName": "SSO Truststore Secret", + "value": "datavirt-app-secret", + "required": false + }, + { + "description": "Comma delimited list of deployments that shoulds be exploded and enabled for SSO OpenIDConnect via auth-method", + "name": "SSO_OPENIDCONNECT_DEPLOYMENTS", + "displayName": "SSO OpenIDConnect Deployments", + "value": "", + "required": false + }, + { + "description": "Comma delimited list of deployments that shoulds be exploded and enabled for SSO SAML via auth-method", + "name": "SSO_SAML_DEPLOYMENTS", + "displayName": "SSO SAML Deployments", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -354,7 +518,22 @@ "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir": "${CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.0" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + } + ] }, "strategy": { "type": "Source", @@ -363,8 +542,26 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datavirt63-openshift:1.0" - } + "name": "jboss-datavirt63-openshift:1.2" + }, + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ] } }, "output": { @@ -390,6 +587,15 @@ "type": "ImageChange", "imageChange": {} }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.0" + } + } + }, { "type": "ConfigChange" } @@ -597,7 +803,7 @@ }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE", - "value": "/etc/datavirt-secret-volume/${HTTPS_KEYSTORE}" + "value": "${HTTPS_KEYSTORE}" }, { "name": "DATAVIRT_TRANSPORT_KEYSTORE_TYPE", @@ -610,6 +816,98 @@ { "name": "DATAVIRT_TRANSPORT_KEYSTORE_PASSWORD", "value": "${HTTPS_PASSWORD}" + }, + { + "name": "SSO_URL", + "value": "${SSO_URL}" + }, + { + "name": "SSO_SERVICE_URL", + "value": "${SSO_SERVICE_URL}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_USERNAME", + "value": "${SSO_USERNAME}" + }, + { + "name": "SSO_PASSWORD", + "value": "${SSO_PASSWORD}" + }, + { + "name": "SSO_PUBLIC_KEY", + "value": "${SSO_PUBLIC_KEY}" + }, + { + "name": "SSO_BEARER_ONLY", + "value": "${SSO_BEARER_ONLY}" + }, + { + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "${SSO_SAML_KEYSTORE_SECRET}" + }, + { + "name": "SSO_SAML_KEYSTORE", + "value": "${SSO_SAML_KEYSTORE}" + }, + { + "name": "SSO_SAML_KEYSTORE_DIR", + "value": "/etc/sso-saml-secret-volume" + }, + { + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "${SSO_SAML_CERTIFICATE_NAME}" + }, + { + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "value": "${SSO_SAML_KEYSTORE_PASSWORD}" + }, + { + "name": "SSO_SECRET", + "value": "${SSO_SECRET}" + }, + { + "name": "SSO_ENABLE_CORS", + "value": "${SSO_ENABLE_CORS}" + }, + { + "name": "SSO_SAML_LOGOUT_PAGE", + "value": "${SSO_SAML_LOGOUT_PAGE}" + }, + { + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "value": "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + }, + { + "name": "SSO_OPENIDCONNECT_DEPLOYMENTS", + "value": "${SSO_OPENIDCONNECT_DEPLOYMENTS}" + }, + { + "name": "SSO_SAML_DEPLOYMENTS", + "value": "${SSO_SAML_DEPLOYMENTS}" + }, + { + "name": "HOSTNAME_HTTP", + "value": "${HOSTNAME_HTTP}" + }, + { + "name": "HOSTNAME_HTTPS", + "value": "${HOSTNAME_HTTPS}" } ] } diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-amq-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-amq-s2i.json index 754a3b4c0..1989036fa 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-amq-s2i.json @@ -5,8 +5,9 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.2 decision server A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,amq,java,messaging,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.3.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server + A-MQ (with https)" }, "name": "decisionserver62-amq-s2i" }, @@ -14,20 +15,24 @@ "template": "decisionserver62-amq-s2i", "xpaas": "1.3.3" }, + "message": "A new BRMS/A-MQ application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "HelloRulesContainer=org.openshift.quickstarts:decisionserver-hellorules:1.2.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,102 +40,119 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -138,6 +160,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -145,18 +168,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -164,6 +190,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -171,6 +198,7 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", @@ -198,7 +226,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -222,7 +251,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -564,7 +594,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-basic-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-basic-s2i.json index 8be4ac90b..25b2c162c 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-basic-s2i.json @@ -5,8 +5,9 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.2 decision server applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.3.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server (no https)" }, "name": "decisionserver62-basic-s2i" }, @@ -14,20 +15,24 @@ "template": "decisionserver62-basic-s2i", "xpaas": "1.3.3" }, + "message": "A new BRMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "HelloRulesContainer=org.openshift.quickstarts:decisionserver-hellorules:1.2.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,48 +40,56 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -84,6 +97,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -91,6 +105,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -98,6 +113,7 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-https-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-https-s2i.json index bf9047599..85605d642 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver62-https-s2i.json @@ -5,8 +5,9 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.2 decision server HTTPS applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.3.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server (with https)" }, "name": "decisionserver62-https-s2i" }, @@ -14,32 +15,38 @@ "template": "decisionserver62-https-s2i", "xpaas": "1.3.3" }, + "message": "A new BRMS application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "HelloRulesContainer=org.openshift.quickstarts:decisionserver-hellorules:1.2.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,78 +54,91 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -126,6 +146,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +154,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -140,6 +162,7 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-amq-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-amq-s2i.json index 51e667e02..ecea54d94 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-amq-s2i.json @@ -5,29 +5,34 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.3 decision server A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,amq,java,messaging,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server + A-MQ (with https)" }, "name": "decisionserver63-amq-s2i" }, "labels": { "template": "decisionserver63-amq-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BRMS/A-MQ application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,108 +40,126 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -144,6 +167,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -151,18 +175,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,6 +197,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -177,10 +205,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -204,7 +246,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -228,7 +271,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -334,13 +378,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-decisionserver63-openshift:1.3" + "name": "jboss-decisionserver63-openshift:1.4" } } }, @@ -574,7 +626,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-basic-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-basic-s2i.json index c5f0d006a..d655dbe94 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-basic-s2i.json @@ -5,29 +5,34 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.3 decision server applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server (no https)" }, "name": "decisionserver63-basic-s2i" }, "labels": { "template": "decisionserver63-basic-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BRMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,48 +40,56 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -84,6 +97,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -91,6 +105,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -98,10 +113,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -184,13 +213,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-decisionserver63-openshift:1.3" + "name": "jboss-decisionserver63-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-https-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-https-s2i.json index 3db0e4c84..78e79c0cf 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/decisionserver63-https-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BRMS 6.3 decision server HTTPS applications built using S2I.", "iconClass": "icon-jboss", - "tags": "decisionserver,java,jboss,xpaas", - "version": "1.3.3" + "tags": "decisionserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server (with https)" }, "name": "decisionserver63-https-s2i" }, "labels": { "template": "decisionserver63-https-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BRMS application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. Please be sure to create the \"decisionserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,78 +54,91 @@ "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "decisionserver/hellorules", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "decisionserver-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -126,6 +146,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +154,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -140,10 +162,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -273,13 +309,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-decisionserver63-openshift:1.3" + "name": "jboss-decisionserver63-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-amq-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-amq-persistent-s2i.json index 72dbb4302..912838175 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-amq-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-amq-persistent-s2i.json @@ -5,131 +5,153 @@ "annotations": { "description": "Application template for EAP 6 A-MQ applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + A-MQ (Persistent with https)" }, "name": "eap64-amq-persistent-s2i" }, "labels": { "template": "eap64-amq-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and A-MQ persistent based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -137,6 +159,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,18 +167,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +189,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,36 +197,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -207,10 +240,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -234,7 +281,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -258,7 +306,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -360,11 +409,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -641,7 +700,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-amq-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-amq-s2i.json index 9dd847451..dd4c7a27b 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-amq-s2i.json @@ -5,119 +5,139 @@ "annotations": { "description": "Application template for EAP 6 A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + A-MQ (Ephemeral with https)" }, "name": "eap64-amq-s2i" }, "labels": { "template": "eap64-amq-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and A-MQ based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +145,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,18 +153,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -151,6 +175,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -158,36 +183,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -195,10 +226,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -222,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -246,7 +292,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -348,11 +395,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -626,7 +683,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-basic-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-basic-s2i.json index 7b1800b7b..e13b3851b 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-basic-s2i.json @@ -6,58 +6,68 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 (no https)" }, "name": "eap64-basic-s2i" }, "labels": { "template": "eap64-basic-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 based application has been created in your project.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -65,6 +75,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -72,6 +83,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -79,12 +91,14 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -92,10 +106,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -174,11 +202,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-https-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-https-s2i.json index 31716d84c..0da32eb40 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-https-s2i.json @@ -6,100 +6,117 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 (with https)" }, "name": "eap64-https-s2i" }, "labels": { "template": "eap64-https-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "6.4.x", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,10 +183,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -287,11 +326,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mongodb-persistent-s2i.json index 212431056..77b75466d 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mongodb-persistent-s2i.json @@ -5,149 +5,175 @@ "annotations": { "description": "Application template for EAP 6 MongoDB applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MongoDB (Persistent with https)" }, "name": "eap64-mongodb-persistent-s2i" }, "labels": { "template": "eap64-mongodb-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MongoDB persistent based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -176,6 +205,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -183,6 +213,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -190,36 +221,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -227,10 +264,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -254,7 +312,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -278,7 +337,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -380,11 +440,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -674,7 +744,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mongodb-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mongodb-s2i.json index 13fbbdd93..2785782d4 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mongodb-s2i.json @@ -5,143 +5,168 @@ "annotations": { "description": "Application template for EAP 6 MongoDB applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MongoDB (Ephemeral with https)" }, "name": "eap64-mongodb-s2i" }, "labels": { "template": "eap64-mongodb-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -170,6 +198,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -177,6 +206,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -184,36 +214,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -221,10 +257,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -248,7 +305,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +330,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -374,11 +433,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -668,7 +737,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mysql-persistent-s2i.json index 69fdec206..cca0f9c2b 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mysql-persistent-s2i.json @@ -5,159 +5,187 @@ "annotations": { "description": "Application template for EAP 6 MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MySQL (Persistent with https)" }, "name": "eap64-mysql-persistent-s2i" }, "labels": { "template": "eap64-mysql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MySQL persistent based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +193,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -172,6 +201,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -179,6 +209,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -186,6 +217,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -193,36 +225,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -230,10 +268,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -257,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -281,7 +341,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -383,11 +444,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -681,7 +752,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mysql-s2i.json index 2bd3c249f..5766506fd 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-mysql-s2i.json @@ -5,153 +5,180 @@ "annotations": { "description": "Application template for EAP 6 MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + MySQL (Ephemeral with https)" }, "name": "eap64-mysql-s2i" }, "labels": { "template": "eap64-mysql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +186,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -166,6 +194,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -173,6 +202,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -180,6 +210,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -187,36 +218,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -224,10 +261,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -251,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -275,7 +334,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -377,11 +437,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -675,7 +745,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-postgresql-persistent-s2i.json index 31f245950..01891774d 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-postgresql-persistent-s2i.json @@ -5,144 +5,169 @@ "annotations": { "description": "Application template for EAP 6 PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + PostgreSQL (Persistent with https)" }, "name": "eap64-postgresql-persistent-s2i" }, "labels": { "template": "eap64-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and PostgreSQL persistent based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -150,6 +175,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -157,6 +183,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -164,6 +191,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -171,6 +199,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -178,36 +207,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -215,10 +250,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -242,7 +298,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -266,7 +323,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -368,11 +426,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -666,7 +734,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-postgresql-s2i.json index eac964697..e00f2b0e3 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-postgresql-s2i.json @@ -5,138 +5,162 @@ "annotations": { "description": "Application template for EAP 6 PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + PostgreSQL (Ephemeral with https)" }, "name": "eap64-postgresql-s2i" }, "labels": { "template": "eap64-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 and PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,6 +168,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -151,6 +176,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,6 +184,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +192,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -172,36 +200,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -209,10 +243,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -236,7 +291,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -260,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -362,11 +419,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" } } }, @@ -660,7 +727,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-sso-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-sso-s2i.json index 09023be71..ec0739d04 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-sso-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-sso-s2i.json @@ -3,103 +3,120 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-jboss", + "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I, enabled for SSO.", - "tags": "eap,javaee,java,jboss,xpaas,sso,keycloak", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 + Single Sign-On (with https)" }, "name": "eap64-sso-s2i" }, "labels": { "template": "eap64-sso-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 6 based application with SSL and SSO support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Hostname for http service route (e.g. eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTP", "value": "", "required": true }, { + "displayName": "Custom https Route Hostname", "description": "Hostname for https service route (e.g. secure-eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTPS", "value": "", "required": true }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/redhat-developer/redhat-sso-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.x-ose", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,84 +183,98 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false }, { + "displayName": "URL for SSO", "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", "name": "SSO_URL", "value": "", "required": true }, { - "description": "The URL for the interal SSO service, where secure-sso is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "displayName": "URL for SSO (internal service)", + "description": "The URL for the internal SSO service, where secure-sso is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", "name": "SSO_SERVICE_URL", "value": "https://secure-sso:8443/auth", "required": false }, { + "displayName": "SSO Realm", "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", "name": "SSO_REALM", "value": "", "required": true }, { + "displayName": "SSO Username", "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", "name": "SSO_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Password", "description": "The password for the SSO service user.", "name": "SSO_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Public Key", "description": "SSO Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability. This can be retrieved from the SSO server, for the specified realm.", "name": "SSO_PUBLIC_KEY", "value": "", "required": false }, { + "displayName": "SSO Bearer Only?", "description": "SSO Client Access Type", "name": "SSO_BEARER_ONLY", "value": "", "required": false }, { + "displayName": "Artifact Directories", "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", "name": "ARTIFACT_DIR", "value": "app-jee-jsp/target,service-jee-jaxrs/target,app-profile-jee-jsp/target,app-profile-saml-jee-jsp/target", "required": false }, { + "displayName": "SSO SAML Keystore Secret", "description": "The name of the secret containing the keystore file", "name": "SSO_SAML_KEYSTORE_SECRET", "value": "eap-app-secret", "required": false }, { + "displayName": "SSO SAML Keystore", "description": "The name of the keystore file within the secret", "name": "SSO_SAML_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "SSO SAML Certificate Name", "description": "The name associated with the server certificate", "name": "SSO_SAML_CERTIFICATE_NAME", "value": "jboss", "required": false }, { + "displayName": "SSO SAML Keystore Password", "description": "The password for the keystore and certificate", "name": "SSO_SAML_KEYSTORE_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "SSO Client Secret", "description": "The SSO Client Secret for Confidential Access", "name": "SSO_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -243,42 +282,55 @@ "required": true }, { + "displayName": "Enable CORS for SSO?", "description": "Enable CORS for SSO applications", "name": "SSO_ENABLE_CORS", "value": "false", "required": false }, { + "displayName": "SSO SAML Logout Page", "description": "SSO logout page for SAML applications", "name": "SSO_SAML_LOGOUT_PAGE", "value": "/", "required": false }, { + "displayName": "Disable SSL Validation in EAP->SSO communication", "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", "value": "true", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "eap-app-secret", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false } - ], + ], "objects": [ { "kind": "Service", @@ -406,7 +458,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap64-openshift:1.4" + "name": "jboss-eap64-openshift:1.5" }, "env": [ { @@ -416,6 +468,10 @@ { "name": "MAVEN_ARGS_APPEND", "value": "" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" } ] } @@ -615,7 +671,7 @@ "name": "HORNETQ_TOPICS", "value": "${HORNETQ_TOPICS}" }, - { + { "name": "JGROUPS_ENCRYPT_SECRET", "value": "${JGROUPS_ENCRYPT_SECRET}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-third-party-db-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-third-party-db-s2i.json new file mode 100644 index 000000000..e8f6d6585 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap64-third-party-db-s2i.json @@ -0,0 +1,646 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-jboss", + "description": "Application template for EAP 6 DB applications built using S2I. Includes support for installing third-party DB drivers.", + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 6.4 (with https, supporting third-party DB drivers)" + }, + "name": "eap64-third-party-db-s2i" + }, + "labels": { + "template": "eap64-third-party-db-s2i", + "xpaas": "1.4.0" + }, + "message": "A new EAP 6 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets:\"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed application(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Configuration Secret Name", + "description": "The name of the secret containing configuration properties for the datasources.", + "name": "CONFIGURATION_NAME", + "value": "eap-app-config", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "datavirt/hibernate-webapp", + "required": false + }, + { + "displayName": "Drivers ImageStreamTag", + "description": "ImageStreamTag definition for the image containing the drivers and configuration, e.g. jboss-datavirt63-openshift:1.0-driver", + "name": "EXTENSIONS_IMAGE", + "value": "jboss-datavirt63-driver-openshift:1.0", + "required": true + }, + { + "displayName": "Drivers ImageStream Namespace", + "description": "Namespace within which the ImageStream definition for the image containing the drivers and configuration is located.", + "name": "EXTENSIONS_IMAGE_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Drivers Image Install Directory", + "description": "Full path to the directory within the extensions image where the extensions are located (e.g. install.sh, modules/, etc.)", + "name": "EXTENSIONS_INSTALL_DIR", + "value": "/extensions", + "required": true + }, + { + "displayName": "Queue Names", + "description": "Queue names to preconfigure within HornetQ subsystem.", + "name": "HORNETQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topic Names", + "description": "Topic names to preconfigure within HornetQ subsystem.", + "name": "HORNETQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "eap-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "HornetQ Cluster Admin Password", + "description": "Admin password for HornetQ cluster.", + "name": "HORNETQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "A secret string used to configure the GitHub webhook.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore to be used for securing JGroups communications.", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the JGroups secret.", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the JGroups server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "secret-key", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "password", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/extras", + "sourcePath": "${EXTENSIONS_INSTALL_DIR}/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.5" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/eap-environment", + "readOnly": true + }, + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "ENV_FILES", + "value": "/etc/eap-environment/*" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "HORNETQ_CLUSTER_PASSWORD", + "value": "${HORNETQ_CLUSTER_PASSWORD}" + }, + { + "name": "HORNETQ_QUEUES", + "value": "${HORNETQ_QUEUES}" + }, + { + "name": "HORNETQ_TOPICS", + "value": "${HORNETQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + }, + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-amq-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-amq-persistent-s2i.json index f08cdf2f9..3f0eba6e3 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-amq-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-amq-persistent-s2i.json @@ -5,131 +5,153 @@ "annotations": { "description": "Application template for EAP 7 A-MQ applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + A-MQ (Persistent with https)" }, "name": "eap70-amq-persistent-s2i" }, "labels": { "template": "eap70-amq-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and A-MQ persistent based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { - "description": "Size of persistent storage for database volume.", + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -137,6 +159,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,18 +167,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +189,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,36 +197,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -207,10 +240,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -234,7 +281,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -258,7 +306,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -360,11 +409,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -641,7 +700,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-amq-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-amq-s2i.json index 3ca9e9fab..f2d65f353 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-amq-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-amq-s2i.json @@ -5,119 +5,139 @@ "annotations": { "description": "Application template for EAP 7 A-MQ applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,amq,javaee,java,messaging,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + A-MQ (with https)" }, "name": "eap70-amq-s2i" }, "labels": { "template": "eap70-amq-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and A-MQ based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "helloworld-mdb", "required": false }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", "value": "java:/ConnectionFactory", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "HELLOWORLDMDBQueue", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "HELLOWORLDMDBTopic", "required": false }, { + "displayName": "A-MQ Serializable Packages", "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", "name": "MQ_SERIALIZABLE_PACKAGES", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +145,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,18 +153,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -151,6 +175,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -158,36 +183,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -195,10 +226,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -222,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTP port." + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -246,7 +292,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's HTTPS port." + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -348,11 +395,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -626,7 +683,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-basic-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-basic-s2i.json index 83b4d5b24..c33e3f7cb 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-basic-s2i.json @@ -6,58 +6,68 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 7 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 (no https)" }, "name": "eap70-basic-s2i" }, "labels": { "template": "eap70-basic-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 based application has been created in your project.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.0.GA", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -65,6 +75,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -72,6 +83,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -79,12 +91,14 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -92,10 +106,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -174,11 +202,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-https-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-https-s2i.json index 1292442a4..7542d31c8 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-https-s2i.json @@ -6,100 +6,117 @@ "iconClass": "icon-jboss", "description": "Application template for EAP 7 applications built using S2I.", "tags": "eap,javaee,java,jboss,xpaas", - "version": "1.3.2" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 (with https)" }, "name": "eap70-https-s2i" }, "labels": { "template": "eap70-https-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.0.GA", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "kitchensink", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,10 +183,24 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -287,11 +326,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mongodb-persistent-s2i.json index 99db77d58..8a7da66c1 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mongodb-persistent-s2i.json @@ -5,149 +5,175 @@ "annotations": { "description": "Application template for EAP 7 MongoDB applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MongoDB (Persistent with https)" }, "name": "eap70-mongodb-persistent-s2i" }, "labels": { "template": "eap70-mongodb-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MongoDB persistent based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -176,6 +205,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -183,6 +213,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -190,36 +221,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -227,10 +264,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -254,7 +312,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -278,7 +337,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -380,11 +440,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -685,7 +755,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mongodb-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mongodb-s2i.json index c8150c231..ae52a3deb 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mongodb-s2i.json @@ -5,143 +5,168 @@ "annotations": { "description": "Application template for EAP 7 MongoDB applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MongoDB (Ephemeral with https)" }, "name": "eap70-mongodb-s2i" }, "labels": { "template": "eap70-mongodb-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -170,6 +198,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -177,6 +206,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -184,36 +214,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -221,10 +257,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -248,7 +305,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +330,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -374,11 +433,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -679,7 +748,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mysql-persistent-s2i.json index f8e5c2b04..a0a3d7717 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mysql-persistent-s2i.json @@ -5,159 +5,187 @@ "annotations": { "description": "Application template for EAP 7 MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MySQL (Persistent with https)" }, "name": "eap70-mysql-persistent-s2i" }, "labels": { "template": "eap70-mysql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MySQL persistent based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +193,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -172,6 +201,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -179,6 +209,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -186,6 +217,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -193,36 +225,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -230,10 +268,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -257,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -281,7 +341,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -383,11 +444,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -696,7 +767,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mysql-s2i.json index 1edeb62e7..8255ade5d 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-mysql-s2i.json @@ -5,153 +5,180 @@ "annotations": { "description": "Application template for EAP 7 MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + MySQL (Ephemeral with https)" }, "name": "eap70-mysql-s2i" }, "labels": { "template": "eap70-mysql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +186,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -166,6 +194,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -173,6 +202,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -180,6 +210,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -187,36 +218,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -224,10 +261,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -251,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -275,7 +334,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -377,11 +437,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -690,7 +760,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-postgresql-persistent-s2i.json index d11df06ee..436c541d8 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-postgresql-persistent-s2i.json @@ -5,144 +5,169 @@ "annotations": { "description": "Application template for EAP 7 PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + PostgreSQL (Persistent with https)" }, "name": "eap70-postgresql-persistent-s2i" }, "labels": { "template": "eap70-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and PostgreSQL persistent based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -150,6 +175,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -157,6 +183,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -164,6 +191,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -171,6 +199,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -178,36 +207,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -215,10 +250,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -242,7 +298,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -266,7 +323,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -368,11 +426,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -681,7 +749,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-postgresql-s2i.json index 6b7f6d707..a2a37a886 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-postgresql-s2i.json @@ -5,138 +5,162 @@ "annotations": { "description": "Application template for EAP 7 PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + PostgreSQL (Ephemeral with https)" }, "name": "eap70-postgresql-s2i" }, "labels": { "template": "eap70-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 and PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/TodoListDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "MQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", - "required": false + "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ cluster password", "description": "A-MQ cluster admin password", "name": "MQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -144,6 +168,7 @@ "required": true }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -151,6 +176,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,6 +184,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -165,6 +192,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -172,36 +200,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -209,10 +243,31 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -236,7 +291,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -260,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -362,11 +419,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" } } }, @@ -675,7 +742,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-sso-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-sso-s2i.json index 811602220..08a844cd9 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-sso-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-sso-s2i.json @@ -3,103 +3,120 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-jboss", + "iconClass": "icon-jboss", "description": "Application template for EAP 6 applications built using S2I, enabled for SSO.", - "tags": "eap,javaee,java,jboss,xpaas,sso,keycloak", - "version": "1.3.2" + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 + Single Sign-On (with https)" }, "name": "eap70-sso-s2i" }, "labels": { "template": "eap70-sso-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new EAP 7 based application with SSL and SSO support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Hostname for http service route (e.g. eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTP", "value": "", "required": true }, { + "displayName": "Custom https Route Hostname", "description": "Hostname for https service route (e.g. secure-eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", "name": "HOSTNAME_HTTPS", "value": "", "required": true }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/redhat-developer/redhat-sso-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "7.0.x-ose", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "eap7-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "eap7-app-secret", "required": true }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -107,6 +124,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -114,6 +132,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +140,42 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,84 +183,98 @@ "required": true }, { + "displayName": "Deploy Exploded Archives", "description": "Controls whether exploded deployment content should be automatically deployed", "name": "AUTO_DEPLOY_EXPLODED", "value": "false", "required": false }, { + "displayName": "URL for SSO", "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", "name": "SSO_URL", "value": "", "required": true }, { - "description": "The URL for the interal SSO service, where secure-sso (the default) is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "displayName": "URL for SSO (internal service)", + "description": "The URL for the internal SSO service, where secure-sso (the default) is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", "name": "SSO_SERVICE_URL", "value": "https://secure-sso:8443/auth", "required": false }, { + "displayName": "SSO Realm", "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", "name": "SSO_REALM", "value": "", "required": true }, { + "displayName": "SSO Username", "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", "name": "SSO_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Password", "description": "The password for the SSO service user.", "name": "SSO_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Public Key", "description": "SSO Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability", "name": "SSO_PUBLIC_KEY", "value": "", "required": false }, { + "displayName": "SSO Bearer Only?", "description": "SSO Client Access Type", "name": "SSO_BEARER_ONLY", "value": "", "required": false }, { + "displayName": "Artifact Directories", "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", "name": "ARTIFACT_DIR", "value": "app-jee-jsp/target,service-jee-jaxrs/target,app-profile-jee-jsp/target,app-profile-saml-jee-jsp/target", "required": false }, { + "displayName": "SSO SAML Keystore Secret", "description": "The name of the secret containing the keystore file", "name": "SSO_SAML_KEYSTORE_SECRET", "value": "eap7-app-secret", "required": false }, { + "displayName": "SSO SAML Keystore", "description": "The name of the keystore file within the secret", "name": "SSO_SAML_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "SSO SAML Certificate Name", "description": "The name associated with the server certificate", "name": "SSO_SAML_CERTIFICATE_NAME", "value": "jboss", "required": false }, { + "displayName": "SSO SAML Keystore Password", "description": "The password for the keystore and certificate", "name": "SSO_SAML_KEYSTORE_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "SSO Client Secret", "description": "The SSO Client Secret for Confidential Access", "name": "SSO_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -243,42 +282,55 @@ "required": true }, { + "displayName": "Enable CORS for SSO?", "description": "Enable CORS for SSO applications", "name": "SSO_ENABLE_CORS", "value": "false", "required": false }, { + "displayName": "SSO SAML Logout Page", "description": "SSO logout page for SAML applications", "name": "SSO_SAML_LOGOUT_PAGE", "value": "/", "required": false }, { + "displayName": "Disable SSL Validation in EAP->SSO communication", "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", "value": "true", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "eap7-app-secret", "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false } - ], + ], "objects": [ { "kind": "Service", @@ -406,7 +458,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap70-openshift:1.4" + "name": "jboss-eap70-openshift:1.5" }, "env": [ { @@ -416,6 +468,10 @@ { "name": "MAVEN_ARGS_APPEND", "value": "" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" } ] } @@ -593,7 +649,7 @@ { "name": "HOSTNAME_HTTPS", "value": "${HOSTNAME_HTTPS}" - }, + }, { "name": "HTTPS_KEYSTORE_DIR", "value": "/etc/eap-secret-volume" @@ -626,7 +682,7 @@ "name": "HORNETQ_TOPICS", "value": "${HORNETQ_TOPICS}" }, - { + { "name": "JGROUPS_ENCRYPT_SECRET", "value": "${JGROUPS_ENCRYPT_SECRET}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-third-party-db-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-third-party-db-s2i.json new file mode 100644 index 000000000..9e854d7ab --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/eap70-third-party-db-s2i.json @@ -0,0 +1,657 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-jboss", + "description": "Application template for EAP 7 DB applications built using S2I. Includes support for installing third-party DB drivers.", + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0 (with https, supporting third-party DB drivers)" + }, + "name": "eap70-third-party-db-s2i" + }, + "labels": { + "template": "eap70-third-party-db-s2i", + "xpaas": "1.4.0" + }, + "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets:\"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed application(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Configuration Secret Name", + "description": "The name of the secret containing configuration properties for the datasources.", + "name": "CONFIGURATION_NAME", + "value": "eap-app-config", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "datavirt/hibernate-webapp", + "required": false + }, + { + "displayName": "Drivers ImageStreamTag", + "description": "ImageStreamTag definition for the image containing the drivers and configuration, e.g. jboss-datavirt63-openshift:1.0-driver", + "name": "EXTENSIONS_IMAGE", + "value": "jboss-datavirt63-driver-openshift:1.0", + "required": true + }, + { + "displayName": "Drivers ImageStream Namespace", + "description": "Namespace within which the ImageStream definition for the image containing the drivers and configuration is located.", + "name": "EXTENSIONS_IMAGE_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Drivers Image Install Directory", + "description": "Full path to the directory within the extensions image where the extensions are located (e.g. install.sh, modules/, etc.)", + "name": "EXTENSIONS_INSTALL_DIR", + "value": "/extensions", + "required": true + }, + { + "displayName": "Queue Names", + "description": "Queue names to preconfigure within Messaging subsystem.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topic Names", + "description": "Topic names to preconfigure within Messaging subsystem.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "eap-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Messaging Cluster Admin Password", + "description": "Admin password for Messaging cluster.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "A secret string used to configure the GitHub webhook.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore to be used for securing JGroups communications.", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the JGroups secret.", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the JGroups server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "secret-key", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "password", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/extras", + "sourcePath": "${EXTENSIONS_INSTALL_DIR}/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap70-openshift:1.5" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/eap-environment", + "readOnly": true + }, + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "ENV_FILES", + "value": "/etc/eap-environment/*" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + }, + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-basic-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-basic-s2i.json index 413a6de87..4e42e0eca 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-basic-s2i.json @@ -6,46 +6,54 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat7,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 (no https)" }, "name": "jws30-tomcat7-basic-s2i" }, "labels": { "template": "jws30-tomcat7-basic-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -53,6 +61,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,6 +69,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -67,6 +77,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -74,10 +85,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -156,11 +181,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -248,7 +283,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-https-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-https-s2i.json index 610ea9441..f5fc2e581 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-https-s2i.json @@ -6,76 +6,89 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat7,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 (with https)" }, "name": "jws30-tomcat7-https-s2i" }, "labels": { "template": "jws30-tomcat7-https-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -83,6 +96,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -90,6 +104,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -97,6 +112,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -104,10 +120,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -233,11 +263,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -326,7 +366,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json index 6ef9d6e4c..2a73a182c 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json @@ -5,125 +5,147 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat7,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MongoDB (Persistent with https)" }, "name": "jws30-tomcat7-mongodb-persistent-s2i" }, "labels": { "template": "jws30-tomcat7-mongodb-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 7 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -131,6 +153,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -138,6 +161,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -145,6 +169,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -152,6 +177,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +185,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -166,6 +193,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -173,10 +201,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -200,7 +249,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -224,7 +274,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -326,11 +377,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -419,7 +480,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -547,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mongodb-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mongodb-s2i.json index 9b48f8ae7..a71dfa634 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mongodb-s2i.json @@ -5,119 +5,140 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications built using S2I.", - "tags": "tomcat,tomcat7,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MongoDB (Ephemeral with https)" }, "name": "jws30-tomcat7-mongodb-s2i" }, "labels": { "template": "jws30-tomcat7-mongodb-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +146,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,6 +154,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -139,6 +162,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -146,6 +170,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -153,6 +178,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -160,6 +186,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -167,10 +194,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -194,7 +242,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -218,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -320,11 +370,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -413,7 +473,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -541,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json index 30af703ce..9a05dcbd5 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json @@ -5,135 +5,159 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat7,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MySQL (Persistent with https)" }, "name": "jws30-tomcat7-mysql-persistent-s2i" }, "labels": { "template": "jws30-tomcat7-mysql-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 7 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -141,6 +165,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +173,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -176,10 +205,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -203,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -227,7 +278,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -329,11 +381,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -422,7 +484,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -546,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mysql-s2i.json index c2843af63..553a30a44 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-mysql-s2i.json @@ -5,129 +5,152 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications built using S2I.", - "tags": "tomcat,tomcat7,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + MySQL (Ephemeral with https)" }, "name": "jws30-tomcat7-mysql-s2i" }, "labels": { "template": "jws30-tomcat7-mysql-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -135,6 +158,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -142,6 +166,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,10 +198,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -197,7 +246,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -221,7 +271,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -323,11 +374,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -416,7 +477,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -540,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json index b8372f374..a5c6c8a56 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json @@ -5,120 +5,141 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat7,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + PostgreSQL (Persistent with https)" }, "name": "jws30-tomcat7-postgresql-persistent-s2i" }, "labels": { "template": "jws30-tomcat7-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 7 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -126,6 +147,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +155,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -140,6 +163,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -147,6 +171,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -154,6 +179,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -161,10 +187,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -188,7 +235,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -212,7 +260,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -314,11 +363,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -407,7 +466,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -531,7 +590,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-postgresql-s2i.json index cd5bb9fa4..61a3208e4 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat7-postgresql-s2i.json @@ -5,114 +5,134 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications built using S2I.", - "tags": "tomcat,tomcat7,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 7 + PostgreSQL (Ephemeral with https)" }, "name": "jws30-tomcat7-postgresql-s2i" }, "labels": { "template": "jws30-tomcat7-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 7 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -120,6 +140,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -127,6 +148,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -134,6 +156,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -141,6 +164,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +172,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -155,10 +180,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -182,7 +228,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -206,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -308,11 +356,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat7-openshift:1.2" + "name": "jboss-webserver30-tomcat7-openshift:1.3" } } }, @@ -401,7 +459,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -525,7 +583,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-basic-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-basic-s2i.json index cb1e49d29..75d08e99d 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-basic-s2i.json @@ -6,46 +6,54 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat8,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 (no https)" }, "name": "jws30-tomcat8-basic-s2i" }, "labels": { "template": "jws30-tomcat8-basic-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -53,6 +61,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -60,6 +69,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -67,6 +77,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -74,10 +85,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -156,11 +181,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -248,7 +283,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-https-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-https-s2i.json index 21d5662c7..71577bec4 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-https-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-https-s2i.json @@ -6,76 +6,89 @@ "iconClass": "icon-tomcat", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat8,java,jboss,xpaas", - "version": "1.2.0" + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 (with https)" }, "name": "jws30-tomcat8-https-s2i" }, "labels": { "template": "jws30-tomcat8-https-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "tomcat-websocket-chat", "required": false }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -83,6 +96,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -90,6 +104,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -97,6 +112,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -104,10 +120,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -233,11 +263,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -326,7 +366,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json index 34657d826..de86dd83e 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json @@ -5,125 +5,147 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat8,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MongoDB (Persistent with https)" }, "name": "jws30-tomcat8-mongodb-persistent-s2i" }, + "message": "A new persistent JWS application for Tomcat 8 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "labels": { "template": "jws30-tomcat8-mongodb-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -131,6 +153,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -138,6 +161,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -145,6 +169,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -152,6 +177,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -159,6 +185,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -166,6 +193,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -173,10 +201,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -200,7 +249,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -224,7 +274,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -326,11 +377,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -419,7 +480,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -547,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mongodb-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mongodb-s2i.json index 974cfaddb..6dc85e226 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mongodb-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mongodb-s2i.json @@ -5,119 +5,140 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MongoDB applications built using S2I.", - "tags": "tomcat,tomcat8,mongodb,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MongoDB (Ephemeral with https)" }, "name": "jws30-tomcat8-mongodb-s2i" }, "labels": { "template": "jws30-tomcat8-mongodb-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-mongodb", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", "value": "", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MongoDB No Preallocation", "description": "Disable data file preallocation.", "name": "MONGODB_NOPREALLOC", "required": false }, { + "displayName": "MongoDB Small Files", "description": "Set MongoDB to use a smaller default data file size.", "name": "MONGODB_SMALLFILES", "required": false }, { + "displayName": "MongoDB Quiet", "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", "name": "MONGODB_QUIET", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -125,6 +146,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -132,6 +154,7 @@ "required": true }, { + "displayName": "Database admin password", "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -139,6 +162,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -146,6 +170,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -153,6 +178,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -160,6 +186,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -167,10 +194,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true } ], "objects": [ @@ -194,7 +242,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -218,7 +267,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" } } }, @@ -320,11 +370,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -413,7 +473,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -541,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mongodb:latest" + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json index 7a8231cc5..0e96b58a9 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json @@ -5,135 +5,159 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat8,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MySQL (Persistent with https)" }, "name": "jws30-tomcat8-mysql-persistent-s2i" }, "labels": { "template": "jws30-tomcat8-mysql-persistent-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 8 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -141,6 +165,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +173,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -155,6 +181,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -162,6 +189,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -169,6 +197,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -176,10 +205,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -203,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -227,7 +278,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -329,11 +381,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -422,7 +484,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -546,7 +608,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mysql-s2i.json index cda21f237..08b040863 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-mysql-s2i.json @@ -5,129 +5,152 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS MySQL applications built using S2I.", - "tags": "tomcat,tomcat8,mysql,java,database,jboss,xpaas", - "version": "1.2.0" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + MySQL (Ephemeral with https)" }, "name": "jws30-tomcat8-mysql-s2i" }, "labels": { "template": "jws30-tomcat8-mysql-s2i", - "xpaas": "1.2.0" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -135,6 +158,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -142,6 +166,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -149,6 +174,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -156,6 +182,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -163,6 +190,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -170,10 +198,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -197,7 +246,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -221,7 +271,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -323,11 +374,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -416,7 +477,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -540,7 +601,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json index 4dfc98015..f117e6624 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json @@ -5,120 +5,141 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications with persistent storage built using S2I.", - "tags": "tomcat,tomcat8,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + PostgreSQL (Persistent with https)" }, "name": "jws30-tomcat8-postgresql-persistent-s2i" }, "labels": { "template": "jws30-tomcat8-postgresql-persistent-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent JWS application for Tomcat 8 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -126,6 +147,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -133,6 +155,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -140,6 +163,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -147,6 +171,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -154,6 +179,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -161,10 +187,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -188,7 +235,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -212,7 +260,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -314,11 +363,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -407,7 +466,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -531,7 +590,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-postgresql-s2i.json index f6c85668c..faece1269 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/jws30-tomcat8-postgresql-s2i.json @@ -5,114 +5,134 @@ "annotations": { "iconClass": "icon-tomcat", "description": "Application template for JWS PostgreSQL applications built using S2I.", - "tags": "tomcat,tomcat8,postgresql,java,database,jboss,xpaas", - "version": "1.3.2" + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Tomcat 8 + (PostgreSQL with https)" }, "name": "jws30-tomcat8-postgresql-s2i" }, "labels": { "template": "jws30-tomcat8-postgresql-s2i", - "xpaas": "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new JWS application for Tomcat 8 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"jws-service-account\" service account and the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.2", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "todolist/todolist-jdbc", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", "name": "DB_JNDI", "value": "jboss/datasources/defaultDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Secret Name", "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", "value": "jws-app-secret", "required": true }, { + "displayName": "Certificate Name", "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", "value": "server.crt", "required": false }, { + "displayName": "Certificate Key Name", "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", "value": "server.key", "required": false }, { + "displayName": "Certificate Password", "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -120,6 +140,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -127,6 +148,7 @@ "required": true }, { + "displayName": "JWS Admin Username", "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", @@ -134,6 +156,7 @@ "required": true }, { + "displayName": "JWS Admin Password", "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -141,6 +164,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -148,6 +172,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -155,10 +180,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -182,7 +228,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -206,7 +253,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -308,11 +356,21 @@ "strategy": { "type": "Source", "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-webserver30-tomcat8-openshift:1.2" + "name": "jboss-webserver30-tomcat8-openshift:1.3" } } }, @@ -400,7 +458,7 @@ "command": [ "/bin/bash", "-c", - "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, @@ -524,7 +582,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/openjdk18-web-basic-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/openjdk18-web-basic-s2i.json index 143e16756..a48e204ae 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/openjdk18-web-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/openjdk18-web-basic-s2i.json @@ -6,13 +6,14 @@ "iconClass": "icon-jboss", "description": "Application template for Java applications built using S2I.", "tags": "java,xpaas", - "version": "1.0.0" + "version": "1.1.0", + "openshift.io/display-name": "Red Hat OpenJDK 8" }, "name": "openjdk18-web-basic-s2i" }, "labels": { "template": "openjdk18-web-basic-s2i", - "xpaas": "1.0.0" + "xpaas": "1.4.0" }, "message": "A new java application has been created in your project.", "parameters": [ @@ -155,7 +156,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-openjdk18-openshift:1.0" + "name": "redhat-openjdk18-openshift:1.1" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json index 1dea463ac..d1705c88c 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-mysql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + MySQL (Persistent with https)" }, "name": "processserver63-amq-mysql-persistent-s2i" }, "labels": { "template": "processserver63-amq-mysql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using MySQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,144 +54,168 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -192,6 +223,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -199,46 +231,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -246,6 +287,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -253,18 +295,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -272,6 +317,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -279,10 +325,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -306,7 +373,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -330,7 +398,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -460,13 +529,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -788,7 +865,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, @@ -919,7 +996,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-mysql-s2i.json index 42264585b..665cb76a3 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-mysql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + MySQL (Ephemeral with https)" }, "name": "processserver63-amq-mysql-s2i" }, "labels": { "template": "processserver63-amq-mysql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using MySQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,132 +54,154 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -180,6 +209,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -187,46 +217,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -234,6 +273,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -241,18 +281,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -260,6 +303,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -267,10 +311,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -294,7 +359,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -318,7 +384,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -448,13 +515,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -740,7 +815,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, @@ -837,7 +912,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json index f6d0c99ed..5a395a0f3 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-postgresql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + PostgreSQL (Persistent with https)" }, "name": "processserver63-amq-postgresql-persistent-s2i" }, "labels": { "template": "processserver63-amq-postgresql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using PostgreSQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,144 +54,168 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "Split Data?", "description": "Split the data directory for each node in a mesh.", "name": "AMQ_SPLIT", "value": "false", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -192,6 +223,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -199,31 +231,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -231,6 +269,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -238,18 +277,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -257,6 +299,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -264,10 +307,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -291,7 +355,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -315,7 +380,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -445,13 +511,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -773,7 +847,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, @@ -892,7 +966,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-postgresql-s2i.json index 41c726cf0..e7c5efdc9 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-amq-postgresql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server AMQ and PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,amq,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + A-MQ + PostgreSQL (Ephemeral with https)" }, "name": "processserver63-amq-postgresql-s2i" }, "labels": { "template": "processserver63-amq-postgresql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using PostgreSQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,132 +54,154 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server JMS Queues Request", "description": "JNDI name of request queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_REQUEST", "value": "queue/KIE.SERVER.REQUEST", "required": false }, { + "displayName": "KIE Server JMS Queues Response", "description": "JNDI name of response queue for JMS.", "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", "value": "queue/KIE.SERVER.RESPONSE", "required": false }, { + "displayName": "KIE Server Executor JMS Queue", "description": "JNDI name of executor queue for JMS.", "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", "value": "queue/KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "JMS Connection Factory JNDI Name", "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", "name": "MQ_JNDI", "value": "java:/JmsXA", "required": false }, { + "displayName": "A-MQ Protocols", "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", "name": "MQ_PROTOCOL", "value": "openwire", "required": false }, { + "displayName": "Queues", "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_QUEUES", "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", "required": false }, { + "displayName": "Topics", "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", "name": "MQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -180,6 +209,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -187,31 +217,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "A-MQ Username", "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -219,6 +255,7 @@ "required": false }, { + "displayName": "A-MQ Password", "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", "name": "MQ_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -226,18 +263,21 @@ "required": false }, { + "displayName": "A-MQ Mesh Discovery Type", "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", "name": "AMQ_MESH_DISCOVERY_TYPE", "value": "kube", "required": false }, { + "displayName": "A-MQ Storage Limit", "description": "The A-MQ storage usage limit", "name": "AMQ_STORAGE_USAGE_LIMIT", "value": "100 gb", "required": false }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -245,6 +285,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -252,10 +293,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -279,7 +341,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -303,7 +366,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" } } }, @@ -433,13 +497,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -725,7 +797,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, @@ -810,7 +882,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-amq-62:1.3" + "name": "jboss-amq-62:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-basic-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-basic-s2i.json index 170c919cb..e70d20a6e 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-basic-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-basic-s2i.json @@ -5,29 +5,34 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,javaee,java,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server (no https)" }, "name": "processserver63-basic-s2i" }, "labels": { "template": "processserver63-basic-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -35,54 +40,63 @@ "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.H2Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -90,6 +104,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -97,6 +112,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -104,10 +120,24 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false } ], "objects": [ @@ -190,13 +220,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-mysql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-mysql-persistent-s2i.json index 89d0db1a6..f76b07b0b 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-mysql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-mysql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server MySQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + MySQL (Persistent with https)" }, "name": "processserver63-mysql-persistent-s2i" }, "labels": { "template": "processserver63-mysql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using MySQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,108 +54,126 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +181,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,46 +189,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -210,6 +245,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -217,6 +253,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -224,10 +261,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -251,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -275,7 +334,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -381,13 +441,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -681,7 +749,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-mysql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-mysql-s2i.json index 26cab29f8..a3be02eab 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-mysql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-mysql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server MySQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,mysql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + MySQL (Ephemeral with https)" }, "name": "processserver63-mysql-s2i" }, "labels": { "template": "processserver63-mysql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using MySQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,102 +54,119 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.MySQL5Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -150,6 +174,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -157,46 +182,55 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -204,6 +238,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -211,6 +246,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -218,10 +254,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -245,7 +302,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -269,7 +327,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -375,13 +434,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -639,7 +706,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-postgresql-persistent-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-postgresql-persistent-s2i.json index 32a512829..361b177f9 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-postgresql-persistent-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-postgresql-persistent-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server PostgreSQL applications with persistent storage built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + PostgreSQL (Persistent with https)" }, "name": "processserver63-postgresql-persistent-s2i" }, "labels": { "template": "processserver63-postgresql-persistent-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new persistent BPMS application (using PostgreSQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,108 +54,126 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -156,6 +181,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -163,31 +189,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -195,6 +227,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -202,6 +235,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -209,10 +243,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -236,7 +291,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -260,7 +316,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -366,13 +423,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -666,7 +731,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-postgresql-s2i.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-postgresql-s2i.json index 55e2199bb..451915a1d 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-postgresql-s2i.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/processserver63-postgresql-s2i.json @@ -5,41 +5,48 @@ "annotations": { "description": "Application template for Red Hat JBoss BPM Suite 6.3 intelligent process server PostgreSQL applications built using S2I.", "iconClass": "icon-jboss", - "tags": "processserver,postgresql,javaee,java,database,jboss,xpaas", - "version": "1.3.3" + "tags": "processserver,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server + PostgreSQL (Ephemeral with https)" }, "name": "processserver63-postgresql-s2i" }, "labels": { "template": "processserver63-postgresql-s2i", - "xpaas": "1.3.3" + "xpaas": "1.4.0" }, + "message": "A new BPMS application (using PostgreSQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"processserver-service-account\" service account and the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ { + "displayName": "KIE Container Deployment", "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", "name": "KIE_CONTAINER_DEPLOYMENT", "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", "required": false }, { + "displayName": "KIE Server Protocol", "description": "The protocol to access the KIE Server REST interface.", "name": "KIE_SERVER_PROTOCOL", "value": "https", "required": false }, { + "displayName": "KIE Server Port", "description": "The port to access the KIE Server REST interface.", "name": "KIE_SERVER_PORT", "value": "8443", "required": false }, { + "displayName": "KIE Server Username", "description": "The user name to access the KIE Server REST or JMS interface.", "name": "KIE_SERVER_USER", "value": "kieserver", "required": false }, { + "displayName": "KIE Server Password", "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", "name": "KIE_SERVER_PASSWORD", "from": "[a-zA-Z]{6}[0-9]{1}!", @@ -47,102 +54,119 @@ "required": false }, { + "displayName": "KIE Server Domain", "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", "name": "KIE_SERVER_DOMAIN", "value": "other", "required": false }, { + "displayName": "KIE Server Persistence Dialect", "description": "Hibernate persistence dialect.", "name": "KIE_SERVER_PERSISTENCE_DIALECT", "value": "org.hibernate.dialect.PostgreSQL82Dialect", "required": false }, { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "kie-app", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Git Repository URL", "description": "Git source URI for application", "name": "SOURCE_REPOSITORY_URL", "value": "https://github.com/jboss-openshift/openshift-quickstarts", "required": true }, { + "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "SOURCE_REPOSITORY_REF", "value": "1.3", "required": false }, { + "displayName": "Context Directory", "description": "Path within Git project to build; empty for root project directory.", "name": "CONTEXT_DIR", "value": "processserver/library", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", "name": "DB_JNDI", "value": "java:jboss/datasources/ExampleDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Queues", "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "", "required": false }, { + "displayName": "Topics", "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "", "required": false }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "processserver-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate", "name": "HTTPS_NAME", "value": "jboss", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate", "name": "HTTPS_PASSWORD", "value": "mykeystorepass", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -150,6 +174,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -157,31 +182,37 @@ "required": true }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "HornetQ Password", "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -189,6 +220,7 @@ "required": true }, { + "displayName": "Github Webhook Secret", "description": "GitHub trigger secret", "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -196,6 +228,7 @@ "required": true }, { + "displayName": "Generic Webhook Secret", "description": "Generic build trigger secret", "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", @@ -203,10 +236,31 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -230,7 +284,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -254,7 +309,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -360,13 +416,21 @@ { "name": "KIE_CONTAINER_DEPLOYMENT", "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" } ], "forcePull": true, "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-processserver63-openshift:1.3" + "name": "jboss-processserver63-openshift:1.4" } } }, @@ -624,7 +688,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-https.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-https.json index fb0578a67..5e956f449 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-https.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-https.json @@ -5,110 +5,129 @@ "annotations": { "description": "Application template for SSO 7.0", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,java,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" }, "name": "sso70-https" }, "labels": { "template": "sso70-https", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new SSO service has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -116,54 +135,65 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", @@ -283,10 +313,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-mysql-persistent.json index dcbb24bf1..0fb2703c7 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-mysql-persistent.json @@ -5,123 +5,145 @@ "annotations": { "description": "Application template for SSO 7.0 MySQL applications with persistent storage", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,mysql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + MySQL (Persistent)" }, "name": "sso70-mysql-persistent" }, "labels": { "template": "sso70-mysql-persistent", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -129,6 +151,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -136,36 +159,42 @@ "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -173,58 +202,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -248,7 +295,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -272,7 +320,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -364,10 +413,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -639,7 +688,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-mysql.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-mysql.json index 1768f7a1b..9beae806b 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-mysql.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-mysql.json @@ -5,123 +5,145 @@ "annotations": { "description": "Application template for SSO 7.0 MySQL applications", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,mysql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + MySQL (Ephemeral)" }, "name": "sso70-mysql" }, "labels": { "template": "sso70-mysql", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "MySQL Lower Case Table Names", "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "required": false }, { + "displayName": "MySQL Maximum number of connections", "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "MySQL FullText Minimum Word Length", "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN", "required": false }, { + "displayName": "MySQL FullText Maximum Word Length", "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN", "required": false }, { + "displayName": "MySQL AIO", "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -129,6 +151,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -136,30 +159,35 @@ "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -167,58 +195,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true } ], "objects": [ @@ -240,10 +286,11 @@ "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}", - "component": "server" + "component": "server" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -268,7 +315,8 @@ "component": "server" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" } } }, @@ -349,7 +397,7 @@ "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}", - "component": "server" + "component": "server" } }, "spec": { @@ -364,10 +412,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -641,7 +689,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "mysql:latest" + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-postgresql-persistent.json index 4c2f81f2e..e22399351 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-postgresql-persistent.json @@ -5,108 +5,127 @@ "annotations": { "description": "Application template for SSO 7.0 PostgreSQL applications with persistent storage", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,postrgresql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + PostgreSQL (Persistent)" }, "name": "sso70-postgresql-persistent" }, "labels": { "template": "sso70-postgresql-persistent", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new persistent SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -114,6 +133,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -121,36 +141,42 @@ "required": true }, { + "displayName": "Database Volume Capacity", "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", "value": "512Mi", "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -158,58 +184,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -233,7 +277,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -257,7 +302,8 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -349,10 +395,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -624,7 +670,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-postgresql.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-postgresql.json index d8402ef72..aa8ebaa8e 100644 --- a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-postgresql.json +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso70-postgresql.json @@ -5,108 +5,127 @@ "annotations": { "description": "Application template for SSO 7.0 PostgreSQL applications", "iconClass" : "icon-jboss", - "tags" : "sso,keycloak,postrgresql,java,database,jboss,xpaas", - "version" : "1.3.2" + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.4.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0 + PostgreSQL (Ephemeral)" }, "name": "sso70-postgresql" }, "labels": { "template": "sso70-postgresql", - "xpaas" : "1.3.2" + "xpaas": "1.4.0" }, + "message": "A new SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", "parameters": [ { + "displayName": "Application Name", "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "sso", "required": true }, { + "displayName": "Custom http Route Hostname", "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTP", "value": "", "required": false }, { + "displayName": "Custom https Route Hostname", "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", "name": "HOSTNAME_HTTPS", "value": "", "required": false }, { + "displayName": "Database JNDI Name", "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", "value": "java:jboss/datasources/KeycloakDS", "required": false }, { + "displayName": "Database Name", "description": "Database name", "name": "DB_DATABASE", "value": "root", "required": true }, { + "displayName": "Service Account Name", "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", "name": "SERVICE_ACCOUNT_NAME", "value": "sso-service-account", "required": true }, { + "displayName": "Server Keystore Secret Name", "description": "The name of the secret containing the keystore file", "name": "HTTPS_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "Server Keystore Filename", "description": "The name of the keystore file within the secret", "name": "HTTPS_KEYSTORE", "value": "keystore.jks", "required": false }, { + "displayName": "Server Keystore Type", "description": "The type of the keystore file (JKS or JCEKS)", "name": "HTTPS_KEYSTORE_TYPE", "value": "", "required": false }, { + "displayName": "Server Certificate Name", "description": "The name associated with the server certificate (e.g. jboss)", "name": "HTTPS_NAME", "value": "", "required": false }, { + "displayName": "Server Keystore Password", "description": "The password for the keystore and certificate (e.g. mykeystorepass)", "name": "HTTPS_PASSWORD", "value": "", "required": false }, { + "displayName": "Datasource Minimum Pool Size", "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE", - "required": false + "required": false }, { + "displayName": "Datasource Maximum Pool Size", "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE", "required": false }, { + "displayName": "Datasource Transaction Isolation", "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION", "required": false }, { + "displayName": "PostgreSQL Maximum number of connections", "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", "name": "POSTGRESQL_MAX_CONNECTIONS", "required": false }, { + "displayName": "PostgreSQL Shared Buffers", "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", "name": "POSTGRESQL_SHARED_BUFFERS", "required": false }, { + "displayName": "Database Username", "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", @@ -114,6 +133,7 @@ "required": true }, { + "displayName": "Database Password", "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -121,30 +141,35 @@ "required": true }, { + "displayName": "JGroups Secret Name", "description": "The name of the secret containing the keystore file", "name": "JGROUPS_ENCRYPT_SECRET", "value": "sso-app-secret", "required": false }, { + "displayName": "JGroups Keystore Filename", "description": "The name of the keystore file within the secret", "name": "JGROUPS_ENCRYPT_KEYSTORE", "value": "jgroups.jceks", "required": false }, { + "displayName": "JGroups Certificate Name", "description": "The name associated with the server certificate (e.g. secret-key)", "name": "JGROUPS_ENCRYPT_NAME", "value": "", "required": false }, { + "displayName": "JGroups Keystore Password", "description": "The password for the keystore and certificate (e.g. password)", "name": "JGROUPS_ENCRYPT_PASSWORD", "value": "", "required": false }, { + "displayName": "JGroups Cluster Password", "description": "JGroups cluster password", "name": "JGROUPS_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", @@ -152,58 +177,76 @@ "required": true }, { + "displayName": "ImageStream Namespace", "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", "name": "IMAGE_STREAM_NAMESPACE", "value": "openshift", "required": true }, { + "displayName": "SSO Admin Username", "description": "SSO Server admin username", "name": "SSO_ADMIN_USERNAME", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Admin Password", "description": "SSO Server admin password", "name": "SSO_ADMIN_PASSWORD", - "value": "admin", - "required": false + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true }, { + "displayName": "SSO Realm", "description": "Realm to be created in the SSO server (e.g. demo).", "name": "SSO_REALM", "value": "", "required": false }, { + "displayName": "SSO Service Username", "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", "name": "SSO_SERVICE_USERNAME", "value": "", "required": false }, { + "displayName": "SSO Service Password", "description": "The password for the SSO service user.", "name": "SSO_SERVICE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store", "description": "The name of the truststore file within the secret (e.g. truststore.jks)", "name": "SSO_TRUSTSTORE", "value": "", "required": false }, { + "displayName": "SSO Trust Store Password", "description": "The password for the truststore and certificate (e.g. mykeystorepass)", "name": "SSO_TRUSTSTORE_PASSWORD", "value": "", "required": false }, { + "displayName": "SSO Trust Store Secret", "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", "name": "SSO_TRUSTSTORE_SECRET", "value": "sso-app-secret", "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true } ], "objects": [ @@ -228,7 +271,8 @@ "component": "server" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -253,7 +297,8 @@ "component": "server" }, "annotations": { - "description": "The web server's https port." + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" } } }, @@ -349,10 +394,10 @@ "containerNames": [ "${APPLICATION_NAME}" ], - "from": { + "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso70-openshift:1.3" + "name": "redhat-sso70-openshift:1.4" } } }, @@ -626,7 +671,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "postgresql:latest" + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" } } }, diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-https.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-https.json new file mode 100644 index 000000000..bee86d7c4 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-https.json @@ -0,0 +1,544 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + }, + "name": "sso71-https" + }, + "labels": { + "template": "sso71-https", + "xpaas": "1.4.0" + }, + "message": "A new SSO service has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-mysql-persistent.json new file mode 100644 index 000000000..49b37f348 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-mysql-persistent.json @@ -0,0 +1,799 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 MySQL applications with persistent storage", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + MySQL (Persistent)" + }, + "name": "sso71-mysql-persistent" + }, + "labels": { + "template": "sso71-mysql-persistent", + "xpaas": "1.4.0" + }, + "message": "A new persistent SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "512Mi", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-mysql.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-mysql.json new file mode 100644 index 000000000..634a75bab --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-mysql.json @@ -0,0 +1,767 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 MySQL applications", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + MySQL (Ephemeral)" + }, + "name": "sso71-mysql" + }, + "labels": { + "template": "sso71-mysql", + "xpaas": "1.4.0" + }, + "message": "A new SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-postgresql-persistent.json new file mode 100644 index 000000000..c53bb9d5b --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-postgresql-persistent.json @@ -0,0 +1,773 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 PostgreSQL applications with persistent storage", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + PostgreSQL (Persistent)" + }, + "name": "sso71-postgresql-persistent" + }, + "labels": { + "template": "sso71-postgresql-persistent", + "xpaas": "1.4.0" + }, + "message": "A new persistent SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "512Mi", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-postgresql.json b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-postgresql.json new file mode 100644 index 000000000..c1fc41eda --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/xpaas-templates/sso71-postgresql.json @@ -0,0 +1,741 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for SSO 7.1 PostgreSQL applications", + "iconClass" : "icon-jboss", + "tags" : "sso,keycloak,jboss,xpaas", + "version": "1.0.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1 + PostgreSQL (Ephemeral)" + }, + "name": "sso71-postgresql" + }, + "labels": { + "template": "sso71-postgresql", + "xpaas": "1.4.0" + }, + "message": "A new SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the \"${SERVICE_ACCOUNT_NAME}\" service account and the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Service Account Name", + "description": "The name of the service account to use for the deployment. The service account should be configured to allow useage of the secret(s) specified by HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.", + "name": "SERVICE_ACCOUNT_NAME", + "value": "sso-service-account", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "SSO Admin Username", + "description": "SSO Server admin username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Admin Password", + "description": "SSO Server admin password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "SSO Realm", + "description": "Realm to be created in the SSO server (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Username", + "description": "The username used to access the SSO service. This is used by clients to create the appliction client(s) within the specified SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Service Password", + "description": "The password for the SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso71-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "lifecycle": { + "preStop": { + "exec": { + "command": [ + "/opt/eap/bin/jboss-cli.sh", + "-c", + ":shutdown(timeout=60)" + ] + } + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + } + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" + }, + { + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ] + } + } + } + } + ] +} -- cgit v1.2.3 From 94feef04f73d970bb6ec45afa3629e368e6c7df6 Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 30 Jun 2017 11:27:03 -0400 Subject: Update v1.4 image streams and templates --- .../db-templates/mariadb-ephemeral-template.json | 12 +- .../db-templates/mariadb-persistent-template.json | 12 +- .../db-templates/mongodb-ephemeral-template.json | 12 +- .../db-templates/mongodb-persistent-template.json | 12 +- .../db-templates/mysql-ephemeral-template.json | 12 +- .../db-templates/mysql-persistent-template.json | 12 +- .../postgresql-ephemeral-template.json | 11 +- .../postgresql-persistent-template.json | 11 +- .../db-templates/redis-ephemeral-template.json | 25 +- .../db-templates/redis-persistent-template.json | 25 +- .../v1.4/image-streams/dotnet_imagestreams.json | 15 +- .../v1.4/image-streams/image-streams-centos7.json | 75 +- .../v1.4/image-streams/image-streams-rhel7.json | 67 +- .../examples/v1.4/quickstart-templates/README.md | 1 + .../examples/v1.4/quickstart-templates/amp.yml | 1261 ++++++++++++++++++++ .../apicast-gateway-template.yml | 149 --- .../examples/v1.4/quickstart-templates/apicast.yml | 157 +++ .../cakephp-mysql-persistent.json | 7 +- .../v1.4/quickstart-templates/cakephp-mysql.json | 7 +- .../dancer-mysql-persistent.json | 10 +- .../v1.4/quickstart-templates/dancer-mysql.json | 10 +- .../django-postgresql-persistent.json | 9 +- .../quickstart-templates/django-postgresql.json | 9 +- .../v1.4/quickstart-templates/dotnet-example.json | 333 ++++++ .../dotnet-pgsql-persistent.json | 565 +++++++++ .../examples/v1.4/quickstart-templates/httpd.json | 274 +++++ .../jenkins-ephemeral-template.json | 15 +- .../jenkins-persistent-template.json | 15 +- .../nodejs-mongodb-persistent.json | 11 +- .../v1.4/quickstart-templates/nodejs-mongodb.json | 11 +- .../examples/v1.4/quickstart-templates/pvc.yml | 49 + .../rails-postgresql-persistent.json | 13 +- .../quickstart-templates/rails-postgresql.json | 13 +- .../v1.4/quickstart-templates/wildcard.yml | 158 +++ 34 files changed, 3163 insertions(+), 215 deletions(-) create mode 100644 roles/openshift_examples/files/examples/v1.4/quickstart-templates/amp.yml delete mode 100644 roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast-gateway-template.yml create mode 100644 roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast.yml create mode 100644 roles/openshift_examples/files/examples/v1.4/quickstart-templates/dotnet-example.json create mode 100644 roles/openshift_examples/files/examples/v1.4/quickstart-templates/dotnet-pgsql-persistent.json create mode 100644 roles/openshift_examples/files/examples/v1.4/quickstart-templates/httpd.json create mode 100644 roles/openshift_examples/files/examples/v1.4/quickstart-templates/pvc.yml create mode 100644 roles/openshift_examples/files/examples/v1.4/quickstart-templates/wildcard.yml diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-ephemeral-template.json index f347f1f9f..536f7275e 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-ephemeral-template.json @@ -23,7 +23,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" + } }, "stringData" : { "database-user" : "${MYSQL_USER}", @@ -35,7 +40,10 @@ "kind": "Service", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mariadb\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-persistent-template.json index 6ed744777..3b7fdccce 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-persistent-template.json @@ -23,7 +23,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" + } }, "stringData" : { "database-user" : "${MYSQL_USER}", @@ -35,7 +40,10 @@ "kind": "Service", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mariadb\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-ephemeral-template.json index 97a8abf6d..ee274194f 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-ephemeral-template.json @@ -24,7 +24,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-admin_password": "{.data['database-admin-password']}" + } }, "stringData" : { "database-user" : "${MONGODB_USER}", @@ -37,7 +42,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "mongodb://{.spec.clusterIP}:{.spec.ports[?(.name==\"mongo\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-persistent-template.json index 0656219fb..e5ba43669 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-persistent-template.json @@ -24,7 +24,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-admin_password": "{.data['database-admin-password']}" + } }, "stringData" : { "database-user" : "${MONGODB_USER}", @@ -37,7 +42,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "mongodb://{.spec.clusterIP}:{.spec.ports[?(.name==\"mongo\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-ephemeral-template.json index d60b4647d..969e62ac5 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-ephemeral-template.json @@ -23,7 +23,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" + } }, "stringData" : { "database-user" : "${MYSQL_USER}", @@ -36,7 +41,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mysql\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-persistent-template.json index c2bfa40fd..4f39d41a5 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-persistent-template.json @@ -23,7 +23,12 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}", + "template.openshift.io/expose-root_password": "{.data['database-root-password']}" + } }, "stringData" : { "database-user" : "${MYSQL_USER}", @@ -35,7 +40,10 @@ "kind": "Service", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mysql\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-ephemeral-template.json index 7a16e742a..c37102cb0 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-ephemeral-template.json @@ -24,7 +24,11 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}" + } }, "stringData" : { "database-user" : "${POSTGRESQL_USER}", @@ -36,7 +40,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "postgres://{.spec.clusterIP}:{.spec.ports[?(.name==\"postgresql\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-persistent-template.json index 242212d6f..32dc93a95 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-persistent-template.json @@ -24,7 +24,11 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${DATABASE_SERVICE_NAME}" + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['database-user']}", + "template.openshift.io/expose-password": "{.data['database-password']}" + } }, "stringData" : { "database-user" : "${POSTGRESQL_USER}", @@ -36,7 +40,10 @@ "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "postgres://{.spec.clusterIP}:{.spec.ports[?(.name==\"postgresql\")].port}" + } }, "spec": { "ports": [ diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/redis-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/redis-ephemeral-template.json index 82a09a3ec..6bb683e52 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/redis-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/redis-ephemeral-template.json @@ -20,12 +20,28 @@ "template": "redis-ephemeral-template" }, "objects": [ + { + "kind": "Secret", + "apiVersion": "v1", + "metadata": { + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-password": "{.data['database-password']}" + } + }, + "stringData" : { + "database-password" : "${REDIS_PASSWORD}" + } + }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "redis://{.spec.clusterIP}:{.spec.ports[?(.name==\"redis\")].port}" + } }, "spec": { "ports": [ @@ -117,7 +133,12 @@ "env": [ { "name": "REDIS_PASSWORD", - "value": "${REDIS_PASSWORD}" + "valueFrom": { + "secretKeyRef" : { + "name" : "${DATABASE_SERVICE_NAME}", + "key" : "database-password" + } + } } ], "resources": { diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/redis-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/redis-persistent-template.json index 1d5f59188..9e8be2309 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/redis-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/redis-persistent-template.json @@ -20,12 +20,28 @@ "template": "redis-persistent-template" }, "objects": [ + { + "kind": "Secret", + "apiVersion": "v1", + "metadata": { + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "template.openshift.io/expose-password": "{.data['database-password']}" + } + }, + "stringData" : { + "database-password" : "${REDIS_PASSWORD}" + } + }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "redis://{.spec.clusterIP}:{.spec.ports[?(.name==\"redis\")].port}" + } }, "spec": { "ports": [ @@ -134,7 +150,12 @@ "env": [ { "name": "REDIS_PASSWORD", - "value": "${REDIS_PASSWORD}" + "valueFrom": { + "secretKeyRef" : { + "name" : "${DATABASE_SERVICE_NAME}", + "key" : "database-password" + } + } } ], "resources": { diff --git a/roles/openshift_examples/files/examples/v1.4/image-streams/dotnet_imagestreams.json b/roles/openshift_examples/files/examples/v1.4/image-streams/dotnet_imagestreams.json index 0d5ac21d8..857ffa980 100644 --- a/roles/openshift_examples/files/examples/v1.4/image-streams/dotnet_imagestreams.json +++ b/roles/openshift_examples/files/examples/v1.4/image-streams/dotnet_imagestreams.json @@ -27,8 +27,9 @@ "iconClass": "icon-dotnet", "tags": "builder,.net,dotnet,dotnetcore", "supports":"dotnet", - "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore.git", - "sampleContextDir": "1.1/test/asp-net-hello-world" + "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git", + "sampleContextDir": "app", + "sampleRef": "dotnetcore-1.1" }, "from": { "kind": "ImageStreamTag", @@ -43,8 +44,9 @@ "iconClass": "icon-dotnet", "tags": "builder,.net,dotnet,dotnetcore,rh-dotnetcore11", "supports":"dotnet:1.1,dotnet", - "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore.git", - "sampleContextDir": "1.1/test/asp-net-hello-world", + "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git", + "sampleContextDir": "app", + "sampleRef": "dotnetcore-1.1", "version": "1.1" }, "from": { @@ -60,8 +62,9 @@ "iconClass": "icon-dotnet", "tags": "builder,.net,dotnet,dotnetcore,rh-dotnetcore10", "supports":"dotnet:1.0,dotnet", - "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore.git", - "sampleContextDir": "1.0/test/asp-net-hello-world", + "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git", + "sampleContextDir": "app", + "sampleRef": "dotnetcore-1.0", "version": "1.0" }, "from": { diff --git a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json index 1a90a9409..6cef21945 100644 --- a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json +++ b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json @@ -3,6 +3,51 @@ "apiVersion": "v1", "metadata": {}, "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "httpd", + "annotations": { + "openshift.io/display-name": "Httpd" + } + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": { + "openshift.io/display-name": "Httpd (Latest)", + "description": "Build and serve static content via Httpd on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Httpd available on OpenShift, including major versions updates.", + "iconClass": "icon-apache", + "tags": "builder,httpd", + "supports":"httpd", + "sampleRepo": "https://github.com/openshift/httpd-ex.git" + }, + "from": { + "kind": "ImageStreamTag", + "name": "2.4" + } + }, + { + "name": "2.4", + "annotations": { + "openshift.io/display-name": "Httpd 2.4", + "description": "Build and serve static content via Httpd on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.", + "iconClass": "icon-apache", + "tags": "builder,httpd", + "supports":"httpd", + "version": "2.4", + "sampleRepo": "https://github.com/openshift/httpd-ex.git" + }, + "from": { + "kind": "DockerImage", + "name": "centos/httpd-24-centos7:latest" + } + } + ] + } + }, { "kind": "ImageStream", "apiVersion": "v1", @@ -103,7 +148,7 @@ }, "from": { "kind": "ImageStreamTag", - "name": "4" + "name": "6" } }, { @@ -137,6 +182,22 @@ "kind": "DockerImage", "name": "centos/nodejs-4-centos7:latest" } + }, + { + "name": "6", + "annotations": { + "openshift.io/display-name": "Node.js 6", + "description": "Build and run Node.js 6 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/6/README.md.", + "iconClass": "icon-nodejs", + "tags": "builder,nodejs", + "supports":"nodejs:6,nodejs", + "version": "6", + "sampleRepo": "https://github.com/openshift/nodejs-ex.git" + }, + "from": { + "kind": "DockerImage", + "name": "centos/nodejs-6-centos7:latest" + } } ] } @@ -407,7 +468,7 @@ "iconClass": "icon-wildfly", "tags": "builder,wildfly,java", "supports":"jee,java", - "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" + "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git" }, "from": { "kind": "ImageStreamTag", @@ -423,7 +484,7 @@ "tags": "builder,wildfly,java", "supports":"wildfly:8.1,jee,java", "version": "8.1", - "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" + "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", @@ -439,7 +500,7 @@ "tags": "builder,wildfly,java", "supports":"wildfly:9.0,jee,java", "version": "9.0", - "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" + "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", @@ -455,7 +516,7 @@ "tags": "builder,wildfly,java", "supports":"wildfly:10.0,jee,java", "version": "10.0", - "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" + "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", @@ -471,7 +532,7 @@ "tags": "builder,wildfly,java", "supports":"wildfly:10.1,jee,java", "version": "10.1", - "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" + "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", @@ -800,7 +861,7 @@ "openshift.io/display-name": "Jenkins 1.X", "description": "Provides a Jenkins 1.X server on CentOS 7. For more information about using this container image, including OpenShift considerations, see https://github.com/openshift/jenkins/blob/master/README.md.", "iconClass": "icon-jenkins", - "tags": "jenkins", + "tags": "hidden,jenkins", "version": "1.x" }, "from": { diff --git a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json index eb94c3bb4..abdae01e3 100644 --- a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json +++ b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json @@ -3,6 +3,51 @@ "apiVersion": "v1", "metadata": {}, "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "httpd", + "annotations": { + "openshift.io/display-name": "Httpd" + } + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": { + "openshift.io/display-name": "Httpd (Latest)", + "description": "Build and serve static content via Httpd on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Httpd available on OpenShift, including major versions updates.", + "iconClass": "icon-apache", + "tags": "builder,httpd", + "supports":"httpd", + "sampleRepo": "https://github.com/openshift/httpd-ex.git" + }, + "from": { + "kind": "ImageStreamTag", + "name": "2.4" + } + }, + { + "name": "2.4", + "annotations": { + "openshift.io/display-name": "Httpd 2.4", + "description": "Build and serve static content via Httpd on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.", + "iconClass": "icon-apache", + "tags": "builder,httpd", + "supports":"httpd", + "version": "2.4", + "sampleRepo": "https://github.com/openshift/httpd-ex.git" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/rhscl/httpd-24-rhel7" + } + } + ] + } + }, { "kind": "ImageStream", "apiVersion": "v1", @@ -103,7 +148,7 @@ }, "from": { "kind": "ImageStreamTag", - "name": "4" + "name": "6" } }, { @@ -137,6 +182,22 @@ "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/nodejs-4-rhel7:latest" } + }, + { + "name": "6", + "annotations": { + "openshift.io/display-name": "Node.js 6", + "description": "Build and run Node.js 6 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container.", + "iconClass": "icon-nodejs", + "tags": "builder,nodejs", + "supports":"nodejs:6,nodejs", + "version": "6", + "sampleRepo": "https://github.com/openshift/nodejs-ex.git" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/rhscl/nodejs-6-rhel7:latest" + } } ] } @@ -253,7 +314,7 @@ "tags": "hidden,builder,php", "supports":"php:5.5,php", "version": "5.5", - "sampleRepo": "https://github.com/openshift/cakephp-ex.git" + "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { "kind": "DockerImage", @@ -707,7 +768,7 @@ "openshift.io/display-name": "Jenkins 1.X", "description": "Provides a Jenkins 1.X server on RHEL 7. For more information about using this container image, including OpenShift considerations, see https://github.com/openshift/jenkins/blob/master/README.md.", "iconClass": "icon-jenkins", - "tags": "jenkins", + "tags": "hidden,jenkins", "version": "1.x" }, "from": { diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/README.md b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/README.md index f48d8d4a8..6d2ccbf7f 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/README.md +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/README.md @@ -17,6 +17,7 @@ instantiating them. * [Dancer persistent](https://raw.githubusercontent.com/openshift/dancer-ex/master/openshift/templates/dancer-mysql-persistent.json) - Provides a basic Dancer (Perl) application with a persistent MySQL database. Note: requires available persistent volumes. For more information see the [source repository](https://github.com/openshift/dancer-ex). * [Django](https://raw.githubusercontent.com/openshift/django-ex/master/openshift/templates/django-postgresql.json) - Provides a basic Django (Python) application with a PostgreSQL database. For more information see the [source repository](https://github.com/openshift/django-ex). * [Django persistent](https://raw.githubusercontent.com/openshift/django-ex/master/openshift/templates/django-postgresql-persistent.json) - Provides a basic Django (Python) application with a persistent PostgreSQL database. Note: requires available persistent volumes. For more information see the [source repository](https://github.com/openshift/django-ex). +* [Httpd](https://raw.githubusercontent.com/openshift/httpd-ex/master/openshift/templates/httpd.json) - Provides a basic Httpd static content application. For more information see the [source repository](https://github.com/openshift/httpd-ex). * [NodeJS](https://raw.githubusercontent.com/openshift/nodejs-ex/master/openshift/templates/nodejs-mongodb.json) - Provides a basic NodeJS application with a MongoDB database. For more information see the [source repository](https://github.com/openshift/nodejs-ex). * [NodeJS persistent](https://raw.githubusercontent.com/openshift/nodejs-ex/master/openshift/templates/nodejs-mongodb-persistent.json) - Provides a basic NodeJS application with a persistent MongoDB database. Note: requires available persistent volumes. For more information see the [source repository](https://github.com/openshift/nodejs-ex). * [Rails](https://raw.githubusercontent.com/openshift/rails-ex/master/openshift/templates/rails-postgresql.json) - Provides a basic Rails (Ruby) application with a PostgreSQL database. For more information see the [source repository](https://github.com/openshift/rails-ex). diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/amp.yml b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/amp.yml new file mode 100644 index 000000000..4e469f6e8 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/amp.yml @@ -0,0 +1,1261 @@ +base_env: &base_env +- name: RAILS_ENV + value: "production" +- name: DATABASE_URL + value: "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}" +- name: FORCE_SSL + value: "true" +- name: THREESCALE_SUPERDOMAIN + value: "${WILDCARD_DOMAIN}" +- name: TENANT_NAME + value: "${TENANT_NAME}" +- name: APICAST_ACCESS_TOKEN + value: "${APICAST_ACCESS_TOKEN}" +- name: ADMIN_ACCESS_TOKEN + value: "${ADMIN_ACCESS_TOKEN}" +- name: PROVIDER_PLAN + value: 'enterprise' +- name: USER_LOGIN + value: "${ADMIN_USERNAME}" +- name: USER_PASSWORD + value: "${ADMIN_PASSWORD}" +- name: RAILS_LOG_TO_STDOUT + value: "true" +- name: RAILS_LOG_LEVEL + value: "info" +- name: THINKING_SPHINX_ADDRESS + value: "system-sphinx" +- name: THINKING_SPHINX_PORT + value: "9306" +- name: THINKING_SPHINX_CONFIGURATION_FILE + value: "/tmp/sphinx.conf" +- name: EVENTS_SHARED_SECRET + value: "${SYSTEM_BACKEND_SHARED_SECRET}" +- name: THREESCALE_SANDBOX_PROXY_OPENSSL_VERIFY_MODE + value: "VERIFY_NONE" +- name: APICAST_BACKEND_ROOT_ENDPOINT + value: "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}" +- name: CONFIG_INTERNAL_API_USER + value: "${SYSTEM_BACKEND_USERNAME}" +- name: CONFIG_INTERNAL_API_PASSWORD + value: "${SYSTEM_BACKEND_PASSWORD}" +- name: SECRET_KEY_BASE + value: "${SYSTEM_APP_SECRET_KEY_BASE}" +- name: AMP_RELEASE + value: "${AMP_RELEASE}" +- name: SMTP_ADDRESS + valueFrom: + configMapKeyRef: + name: smtp + key: address +- name: SMTP_USER_NAME + valueFrom: + configMapKeyRef: + name: smtp + key: username +- name: SMTP_PASSWORD + valueFrom: + configMapKeyRef: + name: smtp + key: password +- name: SMTP_DOMAIN + valueFrom: + configMapKeyRef: + name: smtp + key: domain +- name: SMTP_PORT + valueFrom: + configMapKeyRef: + name: smtp + key: port +- name: SMTP_AUTHENTICATION + valueFrom: + configMapKeyRef: + name: smtp + key: authentication +- name: SMTP_OPENSSL_VERIFY_MODE + valueFrom: + configMapKeyRef: + name: smtp + key: openssl.verify.mode +- name: BACKEND_ROUTE + value: "https://backend-${TENANT_NAME}.${WILDCARD_DOMAIN}" + +apiVersion: v1 +kind: Template +metadata: + name: "system" +message: "Login on https://${TENANT_NAME}-admin.${WILDCARD_DOMAIN} as ${ADMIN_USERNAME}/${ADMIN_PASSWORD}" +objects: + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "system-storage" + spec: + accessModes: + - "ReadWriteMany" + resources: + requests: + storage: "100Mi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "mysql-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "system-redis-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "backend-redis-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: backend-cron + spec: + replicas: 1 + selector: + name: backend-cron + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: backend-cron + spec: + containers: + - args: + - backend-cron + env: + - name: CONFIG_REDIS_PROXY + value: "backend-redis:6379" + - name: CONFIG_QUEUES_MASTER_NAME + value: "backend-redis:6379/1" + - name: RACK_ENV + value: "production" + image: 3scale-amp20/backend:1.0-2 + imagePullPolicy: IfNotPresent + name: backend-cron + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: backend-redis + spec: + replicas: 1 + selector: + name: backend-redis + strategy: + type: Recreate + template: + metadata: + labels: + name: backend-redis + spec: + containers: + - image: ${REDIS_IMAGE} + imagePullPolicy: IfNotPresent + name: backend-redis + readinessProbe: + exec: + command: + - "container-entrypoint" + - "bash" + - "-c" + - "redis-cli set liveness-probe \"`date`\" | grep OK" + initialDelaySeconds: 10 + periodSeconds: 30 + timeoutSeconds: 1 + livenessProbe: + tcpSocket: + port: 6379 + initialDelaySeconds: 10 + periodSeconds: 10 + volumeMounts: + - name: backend-redis-storage + mountPath: "/var/lib/redis/data" + - name: redis-config + mountPath: /etc/redis.conf + subPath: redis.conf + volumes: + - name: backend-redis-storage + persistentVolumeClaim: + claimName: backend-redis-storage + - name: redis-config + configMap: + name: redis-config + items: + - key: redis.conf + path: redis.conf + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: backend-listener + spec: + replicas: 1 + selector: + name: backend-listener + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: backend-listener + spec: + containers: + - args: + - 3scale_backend + - start + - "-e" + - production + - "-p" + - '3000' + - "-x" + - "/dev/stdout" + env: + - name: CONFIG_REDIS_PROXY + value: "backend-redis:6379" + - name: CONFIG_QUEUES_MASTER_NAME + value: "backend-redis:6379/1" + - name: RACK_ENV + value: "production" + - name: CONFIG_INTERNAL_API_USER + value: "${SYSTEM_BACKEND_USERNAME}" + - name: CONFIG_INTERNAL_API_PASSWORD + value: "${SYSTEM_BACKEND_PASSWORD}" + image: 3scale-amp20/backend:1.0-2 + imagePullPolicy: IfNotPresent + name: backend-listener + livenessProbe: + initialDelaySeconds: 30 + periodSeconds: 10 + tcpSocket: + port: 3000 + readinessProbe: + httpGet: + path: "/status" + port: 3000 + initialDelaySeconds: 30 + timeoutSeconds: 5 + ports: + - containerPort: 3000 + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: backend-redis + spec: + ports: + - port: 6379 + protocol: TCP + targetPort: 6379 + selector: + name: backend-redis + +- apiVersion: v1 + kind: Service + metadata: + name: backend-listener + spec: + ports: + - port: 3000 + protocol: TCP + targetPort: 3000 + name: http + selector: + name: backend-listener + +- apiVersion: v1 + kind: Service + metadata: + name: system-provider + spec: + ports: + - port: 3000 + protocol: TCP + targetPort: provider + name: http + selector: + name: system-app + +- apiVersion: v1 + kind: Service + metadata: + name: system-developer + spec: + ports: + - port: 3000 + protocol: TCP + targetPort: developer + name: http + selector: + name: system-app + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: backend-worker + spec: + replicas: 1 + selector: + name: backend-worker + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: backend-worker + spec: + containers: + - args: + - 3scale_backend_worker + - run + env: + - name: CONFIG_REDIS_PROXY + value: "backend-redis:6379" + - name: CONFIG_QUEUES_MASTER_NAME + value: "backend-redis:6379/1" + - name: RACK_ENV + value: "production" + - name: CONFIG_EVENTS_HOOK + value: http://system-provider:3000/master/events/import + - name: CONFIG_EVENTS_HOOK_SHARED_SECRET + value: ${SYSTEM_BACKEND_SHARED_SECRET} + image: 3scale-amp20/backend:1.0-2 + imagePullPolicy: IfNotPresent + name: backend-worker + triggers: + - type: ConfigChange + +- kind: Service + apiVersion: v1 + metadata: + name: 'system-mysql' + spec: + ports: + - name: system-mysql + protocol: TCP + port: 3306 + targetPort: 3306 + nodePort: 0 + selector: + name: 'system-mysql' +- apiVersion: v1 + kind: Service + metadata: + name: system-redis + spec: + ports: + - port: 6379 + protocol: TCP + targetPort: 6379 + name: redis + selector: + name: system-redis + + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-redis + spec: + replicas: 1 + selector: + name: system-redis + strategy: + type: Recreate + template: + metadata: + labels: + name: system-redis + spec: + containers: + - args: + image: ${REDIS_IMAGE} + imagePullPolicy: IfNotPresent + name: system-redis + terminationMessagePath: /dev/termination-log + volumeMounts: + - name: system-redis-storage + mountPath: "/var/lib/redis/data" + - name: redis-config + mountPath: /etc/redis.conf + subPath: redis.conf + readinessProbe: + exec: + command: + - "container-entrypoint" + - "bash" + - "-c" + - "redis-cli set liveness-probe \"`date`\" | grep OK" + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + livenessProbe: + tcpSocket: + port: 6379 + initialDelaySeconds: 10 + periodSeconds: 5 + volumes: + - name: system-redis-storage + persistentVolumeClaim: + claimName: system-redis-storage + - name: redis-config + configMap: + name: redis-config + items: + - key: redis.conf + path: redis.conf + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: system-sphinx + spec: + ports: + - port: 9306 + protocol: TCP + targetPort: 9306 + name: sphinx + selector: + name: system-sphinx + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-sphinx + spec: + replicas: 1 + selector: + name: system-sphinx + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: system-sphinx + spec: + volumes: + - name: system-sphinx-database + emptyDir: {} + containers: + - args: + - rake + - 'openshift:thinking_sphinx:start' + volumeMounts: + - name: system-sphinx-database + mountPath: "/opt/system/db/sphinx" + env: + - name: RAILS_ENV + value: production + - name: DATABASE_URL + value: "mysql2://root:${MYSQL_ROOT_PASSWORD}@system-mysql/${MYSQL_DATABASE}" + - name: THINKING_SPHINX_ADDRESS + value: 0.0.0.0 + - name: THINKING_SPHINX_CONFIGURATION_FILE + value: "db/sphinx/production.conf" + - name: THINKING_SPHINX_PID_FILE + value: db/sphinx/searchd.pid + - name: DELTA_INDEX_INTERVAL + value: '5' + - name: FULL_REINDEX_INTERVAL + value: '60' + image: 3scale-amp20/system:1.0-2 + imagePullPolicy: IfNotPresent + name: system-sphinx + livenessProbe: + tcpSocket: + port: 9306 + initialDelaySeconds: 60 + periodSeconds: 10 + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: system-memcache + spec: + ports: + - port: 11211 + protocol: TCP + targetPort: 11211 + name: memcache + selector: + name: system-memcache +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-memcache + spec: + replicas: 1 + selector: + name: system-memcache + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: system-memcache + spec: + containers: + - args: + env: + image: 3scale-amp20/memcached:1.4.15-7 + imagePullPolicy: IfNotPresent + name: memcache + readinessProbe: + exec: + command: + - "sh" + - "-c" + - "echo version | nc $HOSTNAME 11211 | grep VERSION" + initialDelaySeconds: 10 + periodSeconds: 30 + timeoutSeconds: 5 + livenessProbe: + tcpSocket: + port: 11211 + initialDelaySeconds: 10 + periodSeconds: 10 + command: + - "memcached" + - "-m" + - "64" + ports: + - containerPort: 6379 + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Route + metadata: + name: system-provider-admin-route + labels: + app: system-route + spec: + host: ${TENANT_NAME}-admin.${WILDCARD_DOMAIN} + to: + kind: Service + name: system-provider + port: + targetPort: http + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +- apiVersion: v1 + kind: Route + metadata: + name: backend-route + labels: + app: system-route + spec: + host: backend-${TENANT_NAME}.${WILDCARD_DOMAIN} + to: + kind: Service + name: backend-listener + port: + targetPort: http + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +- apiVersion: v1 + kind: Route + metadata: + name: system-developer-route + labels: + app: system-route + spec: + host: ${TENANT_NAME}.${WILDCARD_DOMAIN} + to: + kind: Service + name: system-developer + port: + targetPort: http + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: apicast-staging + spec: + replicas: 1 + selector: + deploymentconfig: apicast-staging + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 1800 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + deploymentconfig: apicast-staging + spec: + containers: + - env: + - name: THREESCALE_PORTAL_ENDPOINT + value: http://${APICAST_ACCESS_TOKEN}@system-provider:3000 + - name: APICAST_CONFIGURATION_LOADER + value: "lazy" + - name: APICAST_CONFIGURATION_CACHE + value: "0" + - name: THREESCALE_DEPLOYMENT_ENV + value: "sandbox" + - name: APICAST_MANAGEMENT_API + value: "${APICAST_MANAGEMENT_API}" + - name: BACKEND_ENDPOINT_OVERRIDE + value: http://backend-listener:3000 + - name: OPENSSL_VERIFY + value: '${APICAST_OPENSSL_VERIFY}' + - name: APICAST_RESPONSE_CODES + value: '${APICAST_RESPONSE_CODES}' + - name: REDIS_URL + value: "redis://system-redis:6379/2" + image: 3scale-amp20/apicast-gateway:1.0-3 + imagePullPolicy: IfNotPresent + name: apicast-staging + livenessProbe: + httpGet: + path: /status/live + port: 8090 + initialDelaySeconds: 10 + timeoutSeconds: 5 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /status/ready + port: 8090 + initialDelaySeconds: 15 + timeoutSeconds: 5 + periodSeconds: 30 + ports: + - containerPort: 8080 + protocol: TCP + - containerPort: 8090 + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: apicast-staging + spec: + ports: + - name: gateway + port: 8080 + protocol: TCP + targetPort: 8080 + - name: management + port: 8090 + protocol: TCP + targetPort: 8090 + selector: + deploymentconfig: apicast-staging + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: apicast-production + spec: + replicas: 1 + selector: + deploymentconfig: apicast-production + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 1800 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + deploymentconfig: apicast-production + spec: + containers: + - env: + - name: THREESCALE_PORTAL_ENDPOINT + value: "http://${APICAST_ACCESS_TOKEN}@system-provider:3000" + - name: APICAST_CONFIGURATION_LOADER + value: "boot" + - name: APICAST_CONFIGURATION_CACHE + value: "300" + - name: THREESCALE_DEPLOYMENT_ENV + value: "production" + - name: APICAST_MANAGEMENT_API + value: "${APICAST_MANAGEMENT_API}" + - name: BACKEND_ENDPOINT_OVERRIDE + value: http://backend-listener:3000 + - name: OPENSSL_VERIFY + value: '${APICAST_OPENSSL_VERIFY}' + - name: APICAST_RESPONSE_CODES + value: '${APICAST_RESPONSE_CODES}' + - name: REDIS_URL + value: "redis://system-redis:6379/1" + image: 3scale-amp20/apicast-gateway:1.0-3 + imagePullPolicy: IfNotPresent + name: apicast-production + livenessProbe: + httpGet: + path: /status/live + port: 8090 + initialDelaySeconds: 10 + timeoutSeconds: 5 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /status/ready + port: 8090 + initialDelaySeconds: 15 + timeoutSeconds: 5 + periodSeconds: 30 + ports: + - containerPort: 8080 + protocol: TCP + - containerPort: 8090 + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: apicast-production + spec: + ports: + - name: gateway + port: 8080 + protocol: TCP + targetPort: 8080 + - name: management + port: 8090 + protocol: TCP + targetPort: 8090 + selector: + deploymentconfig: apicast-production + +- apiVersion: v1 + kind: Route + metadata: + name: api-apicast-staging-route + labels: + app: apicast-staging + spec: + host: api-${TENANT_NAME}-apicast-staging.${WILDCARD_DOMAIN} + to: + kind: Service + name: apicast-staging + port: + targetPort: gateway + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +- apiVersion: v1 + kind: Route + metadata: + name: api-apicast-production-route + labels: + app: apicast-production + spec: + host: api-${TENANT_NAME}-apicast-production.${WILDCARD_DOMAIN} + to: + kind: Service + name: apicast-production + port: + targetPort: gateway + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-app + spec: + replicas: 1 + selector: + name: system-app + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + pre: + failurePolicy: Retry + execNewPod: + containerName: system-provider + command: + - bash + - -c + - bundle exec rake boot openshift:deploy + env: *base_env + volumes: + - system-storage + post: + failurePolicy: Abort + execNewPod: + containerName: system-provider + command: + - bash + - -c + - bundle exec rake boot openshift:post_deploy + type: Rolling + template: + metadata: + labels: + name: system-app + spec: + containers: + - args: + env: *base_env + image: 3scale-amp20/system:1.0-2 + imagePullPolicy: IfNotPresent + command: ['env', 'TENANT_MODE=provider', 'PORT=3000', 'container-entrypoint', 'bundle', 'exec', 'unicorn', '-c', 'config/unicorn.rb'] + name: system-provider + livenessProbe: + timeoutSeconds: 10 + initialDelaySeconds: 20 + tcpSocket: + port: provider + periodSeconds: 10 + readinessProbe: + httpGet: + path: /check.txt + port: provider + scheme: HTTP + httpHeaders: + - name: X-Forwarded-Proto + value: https + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + ports: + - containerPort: 3000 + protocol: TCP + name: provider + volumeMounts: + - name: system-storage + mountPath: /opt/system/public/system + - args: + env: *base_env + image: 3scale-amp20/system:1.0-2 + command: ['env', 'TENANT_MODE=developer', 'PORT=3001', 'container-entrypoint', 'bundle', 'exec', 'unicorn', '-c', 'config/unicorn.rb'] + imagePullPolicy: IfNotPresent + name: system-developer + livenessProbe: + timeoutSeconds: 10 + initialDelaySeconds: 20 + tcpSocket: + port: developer + periodSeconds: 10 + readinessProbe: + httpGet: + path: /check.txt + port: developer + scheme: HTTP + httpHeaders: + - name: X-Forwarded-Proto + value: https + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + ports: + - containerPort: 3001 + protocol: TCP + name: developer + volumeMounts: + - name: system-storage + mountPath: /opt/system/public/system + readOnly: true + volumes: + - name: system-storage + persistentVolumeClaim: + claimName: system-storage + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-resque + spec: + replicas: 1 + selector: + name: system-resque + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: system-resque + spec: + containers: + - args: + - 'rake' + - 'resque:work' + - 'QUEUE=*' + env: *base_env + image: 3scale-amp20/system:1.0-2 + imagePullPolicy: IfNotPresent + name: system-resque + volumeMounts: + - name: system-storage + mountPath: /opt/system/public/system + - args: + - 'rake' + - 'resque:scheduler' + - 'QUEUE=*' + env: *base_env + image: 3scale-amp20/system:1.0-2 + imagePullPolicy: IfNotPresent + name: system-scheduler + volumes: + - name: system-storage + persistentVolumeClaim: + claimName: system-storage + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: system-sidekiq + spec: + replicas: 1 + selector: + name: system-sidekiq + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + name: system-sidekiq + spec: + containers: + - args: + - rake + - sidekiq:worker + env: *base_env + image: 3scale-amp20/system:1.0-2 + imagePullPolicy: IfNotPresent + name: system-sidekiq + volumeMounts: + - name: system-storage + mountPath: /opt/system/public/system + volumes: + - name: system-storage + persistentVolumeClaim: + claimName: system-storage + triggers: + - type: ConfigChange + + +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: 'system-mysql' + spec: + strategy: + type: Recreate + triggers: + - type: ConfigChange + replicas: 1 + selector: + name: 'system-mysql' + template: + metadata: + labels: + name: 'system-mysql' + spec: + containers: + - name: system-mysql + image: ${MYSQL_IMAGE} + ports: + - containerPort: 3306 + protocol: TCP + resources: + limits: + memory: 2Gi + requests: + cpu: '1' + memory: 1Gi + readinessProbe: + timeoutSeconds: 5 + initialDelaySeconds: 10 + periodSeconds: 30 + exec: + command: + - /bin/sh + - '-i' + - '-c' + - MYSQL_PWD="$MYSQL_PASSWORD" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1' + livenessProbe: + initialDelaySeconds: 30 + periodSeconds: 10 + tcpSocket: + port: 3306 + env: + - name: MYSQL_USER + value: ${MYSQL_USER} + - name: MYSQL_PASSWORD + value: ${MYSQL_PASSWORD} + - name: MYSQL_DATABASE + value: ${MYSQL_DATABASE} + - name: MYSQL_ROOT_PASSWORD + value: ${MYSQL_ROOT_PASSWORD} + - name: MYSQL_LOWER_CASE_TABLE_NAMES + value: "1" + volumeMounts: + - name: 'mysql-storage' + mountPath: /var/lib/mysql/data + imagePullPolicy: IfNotPresent + volumes: + - name: 'mysql-storage' + persistentVolumeClaim: + claimName: 'mysql-storage' +- kind: ConfigMap + apiVersion: v1 + metadata: + name: redis-config + data: + redis.conf: | + protected-mode no + + port 6379 + + timeout 0 + tcp-keepalive 300 + + daemonize no + supervised no + + loglevel notice + + databases 16 + + save 900 1 + save 300 10 + save 60 10000 + + stop-writes-on-bgsave-error yes + + rdbcompression yes + rdbchecksum yes + + dbfilename dump.rdb + + slave-serve-stale-data yes + slave-read-only yes + + repl-diskless-sync no + repl-disable-tcp-nodelay no + + appendonly yes + appendfilename "appendonly.aof" + appendfsync everysec + no-appendfsync-on-rewrite no + auto-aof-rewrite-percentage 100 + auto-aof-rewrite-min-size 64mb + aof-load-truncated yes + + lua-time-limit 5000 + + activerehashing no + + aof-rewrite-incremental-fsync yes + dir /var/lib/redis/data + +- kind: ConfigMap + + apiVersion: v1 + metadata: + name: smtp + data: + address: "" + username: "" + password: "" + domain: "" + port: "" + authentication: "" + openssl.verify.mode: "" + +parameters: +- name: AMP_RELEASE + description: "AMP release tag." + value: 2.0.0-CR2-redhat-1 + required: true +- name: ADMIN_PASSWORD + required: true + generate: expression + from: "[a-z0-9]{8}" +- name: ADMIN_USERNAME + value: admin + required: true +- name: APICAST_ACCESS_TOKEN + required: true + generate: expression + from: "[a-z0-9]{8}" + description: "Read Only Access Token that is APIcast going to use to download its configuration." +- name: ADMIN_ACCESS_TOKEN + required: false + generate: expression + from: "[a-z0-9]{16}" + description: "Admin Access Token with all scopes and write permissions for API access." +- name: WILDCARD_DOMAIN + description: Root domain for the wildcard routes. Eg. example.com will generate 3scale-admin.example.com. + required: true +- name: TENANT_NAME + description: "Tenant name under the root that Admin UI will be available with -admin suffix." + required: true + value: "3scale" +- name: MYSQL_USER + displayName: MySQL User + description: Username for MySQL user that will be used for accessing the database. + value: "mysql" + required: true +- name: MYSQL_PASSWORD + displayName: MySQL Password + description: Password for the MySQL user. + generate: expression + from: "[a-z0-9]{8}" + required: true +- name: MYSQL_DATABASE + displayName: MySQL Database Name + description: Name of the MySQL database accessed. + value: "system" + required: true +- name: MYSQL_ROOT_PASSWORD + displayName: MySQL Root password. + description: Password for Root user. + generate: expression + from: "[a-z0-9]{8}" + required: true +- name: SYSTEM_BACKEND_USERNAME + description: Internal 3scale API username for internal 3scale api auth. + value: "3scale_api_user" + required: true +- name: SYSTEM_BACKEND_PASSWORD + description: Internal 3scale API password for internal 3scale api auth. + generate: expression + from: "[a-z0-9]{8}" + required: true +- name: REDIS_IMAGE + description: Redis image to use + required: true + value: rhscl/redis-32-rhel7:3.2-5.7 +- name: MYSQL_IMAGE + description: Mysql image to use + required: true + value: rhscl/mysql-56-rhel7:5.6-13.14 +- name: SYSTEM_BACKEND_SHARED_SECRET + description: Shared secret to import events from backend to system. + generate: expression + from: "[a-z0-9]{8}" + required: true +- name: SYSTEM_APP_SECRET_KEY_BASE + description: System application secret key base + generate: expression + from: "[a-f0-9]{128}" + required: true +- name: APICAST_MANAGEMENT_API + description: "Scope of the APIcast Management API. Can be disabled, status or debug. At least status required for health checks." + required: false + value: "status" +- name: APICAST_OPENSSL_VERIFY + description: "Turn on/off the OpenSSL peer verification when downloading the configuration. Can be set to true/false." + required: false + value: "false" +- name: APICAST_RESPONSE_CODES + description: "Enable logging response codes in APIcast." + value: "true" + required: false diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast-gateway-template.yml b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast-gateway-template.yml deleted file mode 100644 index 34f5fcbcc..000000000 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast-gateway-template.yml +++ /dev/null @@ -1,149 +0,0 @@ -apiVersion: v1 -kind: Template -metadata: - creationTimestamp: null - name: 3scale-gateway - annotations: - description: "3scale API Gateway" - iconClass: "icon-load-balancer" - tags: "api,gateway,3scale" -objects: -- apiVersion: v1 - kind: DeploymentConfig - metadata: - name: ${THREESCALE_GATEWAY_NAME} - spec: - replicas: 2 - selector: - deploymentconfig: ${THREESCALE_GATEWAY_NAME} - strategy: - resources: {} - rollingParams: - intervalSeconds: 1 - maxSurge: 25% - maxUnavailable: 25% - timeoutSeconds: 600 - updatePeriodSeconds: 1 - type: Rolling - template: - metadata: - labels: - deploymentconfig: ${THREESCALE_GATEWAY_NAME} - spec: - containers: - - env: - - name: THREESCALE_PORTAL_ENDPOINT - valueFrom: - secretKeyRef: - name: ${THREESCALE_PORTAL_ENDPOINT_SECRET} - key: password - - name: THREESCALE_CONFIG_FILE - value: ${THREESCALE_CONFIG_FILE} - - name: RESOLVER - value: ${RESOLVER} - - name: APICAST_SERVICES - value: ${APICAST_SERVICES} - - name: APICAST_MISSING_CONFIGURATION - value: ${MISSING_CONFIGURATION} - - name: APICAST_LOG_LEVEL - value: ${APICAST_LOG_LEVEL} - - name: APICAST_PATH_ROUTING_ENABLED - value: ${PATH_ROUTING} - - name: APICAST_RESPONSE_CODES - value: ${RESPONSE_CODES} - - name: APICAST_REQUEST_LOGS - value: ${REQUEST_LOGS} - - name: APICAST_RELOAD_CONFIG - value: ${APICAST_RELOAD_CONFIG} - image: ${THREESCALE_GATEWAY_IMAGE} - imagePullPolicy: Always - name: ${THREESCALE_GATEWAY_NAME} - livenessProbe: - httpGet: - path: /status/live - port: 8090 - initialDelaySeconds: 10 - timeoutSeconds: 1 - readinessProbe: - httpGet: - path: /status/ready - port: 8090 - initialDelaySeconds: 15 - timeoutSeconds: 1 - ports: - - containerPort: 8080 - protocol: TCP - resources: {} - terminationMessagePath: /dev/termination-log - dnsPolicy: ClusterFirst - restartPolicy: Always - securityContext: {} - terminationGracePeriodSeconds: 30 - triggers: - - type: ConfigChange - status: {} -- apiVersion: v1 - kind: Service - metadata: - creationTimestamp: null - name: ${THREESCALE_GATEWAY_NAME} - spec: - ports: - - name: 8080-tcp - port: 8080 - protocol: TCP - targetPort: 8080 - selector: - deploymentconfig: ${THREESCALE_GATEWAY_NAME} - sessionAffinity: None - type: ClusterIP - status: - loadBalancer: {} -parameters: -- description: "Name of the secret containing the THREESCALE_PORTAL_ENDPOINT with the access-token or provider key" - value: threescale-portal-endpoint-secret - name: THREESCALE_PORTAL_ENDPOINT_SECRET - required: true -- description: "Path to saved JSON file with configuration for the gateway. Has to be injected to the docker image as read only volume." - value: - name: THREESCALE_CONFIG_FILE - required: false -- description: "Name for the 3scale API Gateway" - value: threescalegw - name: THREESCALE_GATEWAY_NAME - required: true -- description: "Docker image to use." - value: 'rhamp10/apicast-gateway:1.0.0-4' - name: THREESCALE_GATEWAY_IMAGE - required: true -- description: "DNS Resolver for openresty, if empty it will be autodiscovered" - value: - name: RESOLVER - required: false -- description: "Subset of services to run. Use comma separated list of service ids (eg. 42,1337)" - value: - name: APICAST_SERVICES - required: false -- description: "What to do on missing or invalid configuration. Allowed values are: log, exit." - value: exit - required: false - name: MISSING_CONFIGURATION -- description: "Log level. One of the following: debug, info, notice, warn, error, crit, alert, or emerg." - name: APICAST_LOG_LEVEL - required: false -- description: "Enable path routing. Experimental feature." - name: PATH_ROUTING - required: false - value: "false" -- description: "Enable traffic logging to 3scale. Includes whole request and response." - value: "false" - name: REQUEST_LOGS - required: false -- description: "Enable logging response codes to 3scale." - value: "false" - name: RESPONSE_CODES - required: false -- description: "Reload config on every request" - value: "false" - name: APICAST_RELOAD_CONFIG - required: false diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast.yml b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast.yml new file mode 100644 index 000000000..8e8051c0b --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast.yml @@ -0,0 +1,157 @@ +apiVersion: v1 +kind: Template +metadata: + name: 3scale-gateway + annotations: + description: "3scale API Gateway" + iconClass: "icon-load-balancer" + tags: "api,gateway,3scale" +objects: + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: "${APICAST_NAME}" + spec: + replicas: 2 + selector: + deploymentconfig: "${APICAST_NAME}" + strategy: + type: Rolling + template: + metadata: + labels: + deploymentconfig: "${APICAST_NAME}" + spec: + containers: + - env: + - name: THREESCALE_PORTAL_ENDPOINT + valueFrom: + secretKeyRef: + name: "${CONFIGURATION_URL_SECRET}" + key: password + - name: THREESCALE_CONFIG_FILE + value: "${CONFIGURATION_FILE_PATH}" + - name: THREESCALE_DEPLOYMENT_ENV + value: "${DEPLOYMENT_ENVIRONMENT}" + - name: RESOLVER + value: "${RESOLVER}" + - name: APICAST_SERVICES + value: "${SERVICES_LIST}" + - name: APICAST_CONFIGURATION_LOADER + value: "${CONFIGURATION_LOADER}" + - name: APICAST_LOG_LEVEL + value: "${LOG_LEVEL}" + - name: APICAST_PATH_ROUTING_ENABLED + value: "${PATH_ROUTING}" + - name: APICAST_RESPONSE_CODES + value: "${RESPONSE_CODES}" + - name: APICAST_CONFIGURATION_CACHE + value: "${CONFIGURATION_CACHE}" + - name: REDIS_URL + value: "${REDIS_URL}" + - name: APICAST_MANAGEMENT_API + value: "${MANAGEMENT_API}" + - name: OPENSSL_VERIFY + value: "${OPENSSL_VERIFY}" + image: 3scale-amp20/apicast-gateway:1.0-3 + imagePullPolicy: IfNotPresent + name: "${APICAST_NAME}" + livenessProbe: + httpGet: + path: /status/live + port: management + initialDelaySeconds: 10 + timeoutSeconds: 1 + readinessProbe: + httpGet: + path: /status/ready + port: management + initialDelaySeconds: 15 + timeoutSeconds: 1 + ports: + - name: proxy + containerPort: 8080 + protocol: TCP + - name: management + containerPort: 8090 + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: "${APICAST_NAME}" + spec: + ports: + - name: proxy + port: 8080 + protocol: TCP + targetPort: 8080 + - name: management + port: 8090 + protocol: TCP + targetPort: 8090 + selector: + deploymentconfig: "${APICAST_NAME}" + +parameters: +- name: AMP_RELEASE + description: "AMP release tag." + value: 2.0.0-CR2-redhat-1 + required: true +- description: "Name of the secret containing the THREESCALE_PORTAL_ENDPOINT with the access-token or provider key" + value: apicast-configuration-url-secret + name: CONFIGURATION_URL_SECRET + required: true +- description: "Path to saved JSON file with configuration for the gateway. Has to be injected to the docker image as read only volume." + value: + name: CONFIGURATION_FILE_PATH + required: false +- description: "Deployment environment. Can be sandbox or production." + value: production + name: DEPLOYMENT_ENVIRONMENT + required: true +- description: "Name for the 3scale API Gateway" + value: apicast + name: APICAST_NAME + required: true +- description: "DNS Resolver for openresty, if empty it will be autodiscovered" + value: + name: RESOLVER + required: false +- description: "Subset of services to run. Use comma separated list of service ids (eg. 42,1337)" + value: + name: SERVICES_LIST + required: false +- name: CONFIGURATION_LOADER + description: "When to load configuration. If on gateway start or incoming request. Allowed values are: lazy, boot." + value: boot + required: false +- description: "Log level. One of the following: debug, info, notice, warn, error, crit, alert, or emerg." + name: LOG_LEVEL + required: false +- description: "Enable path routing. Experimental feature." + name: PATH_ROUTING + required: false + value: "false" +- description: "Enable logging response codes to 3scale." + value: "false" + name: RESPONSE_CODES + required: false +- name: CONFIGURATION_CACHE + description: "For how long to cache the downloaded configuration in seconds. Can be left empty, 0 or greater than 60." + value: "" + required: false +- description: "Redis URL. Required for OAuth2 integration. ex: redis://PASSWORD@127.0.0.1:6379/0" + name: REDIS_URL + required: false +- name: MANAGEMENT_API + description: "Scope of the Management API. Can be disabled, status or debug. At least status required for health checks." + required: false + value: "status" +- name: OPENSSL_VERIFY + description: "Turn on/off the OpenSSL peer verification. Can be set to true/false." + required: true + value: "false" diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql-persistent.json index eb3d296be..6d987ee33 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql-persistent.json @@ -60,7 +60,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -510,7 +513,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql.json index da2454d2e..fb2ef206e 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql.json @@ -60,7 +60,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -484,7 +487,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql-persistent.json index 81ae63416..7ffb25e14 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql-persistent.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -147,6 +150,9 @@ } }, "spec": { + "strategy": { + "type": "Recreate" + }, "triggers": [ { "type": "ImageChange", @@ -472,7 +478,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql.json index 7a285dba8..d787e376b 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -147,6 +150,9 @@ } }, "spec": { + "strategy": { + "type": "Recreate" + }, "triggers": [ { "type": "ImageChange", @@ -446,7 +452,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql-persistent.json index 9f982c286..a2070207b 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql-persistent.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -148,7 +151,7 @@ }, "spec": { "strategy": { - "type": "Rolling" + "type": "Recreate" }, "triggers": [ { @@ -479,7 +482,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql.json index 7bee85ddd..0d33c6e0e 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -148,7 +151,7 @@ }, "spec": { "strategy": { - "type": "Rolling" + "type": "Recreate" }, "triggers": [ { @@ -453,7 +456,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dotnet-example.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dotnet-example.json new file mode 100644 index 000000000..af46579c8 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dotnet-example.json @@ -0,0 +1,333 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "name": "dotnet-example", + "annotations": { + "openshift.io/display-name": ".NET Core Example", + "description": "An example .NET Core application.", + "tags": "quickstart,dotnet,.net", + "iconClass": "icon-dotnet", + "template.openshift.io/provider-display-name": "Red Hat, Inc.", + "template.openshift.io/documentation-url": "https://github.com/redhat-developer/s2i-dotnetcore", + "template.openshift.io/support-url": "https://access.redhat.com" + } + }, + "objects": [ + { + "kind": "Route", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}" + }, + "spec": { + "host": "${APPLICATION_DOMAIN}", + "to": { + "kind": "Service", + "name": "${NAME}" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Exposes and load balances the application pods" + } + }, + "spec": { + "ports": [ + { + "name": "web", + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "name": "${NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Keeps track of changes in the application image" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Defines how to build the application" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${NAMESPACE}", + "name": "${DOTNET_IMAGE_STREAM_TAG}" + }, + "env": [ + { + "name": "DOTNET_STARTUP_PROJECT", + "value": "${DOTNET_STARTUP_PROJECT}" + }, + { + "name": "DOTNET_ASSEMBLY_NAME", + "value": "${DOTNET_ASSEMBLY_NAME}" + }, + { + "name": "DOTNET_NPM_TOOLS", + "value": "${DOTNET_NPM_TOOLS}" + }, + { + "name": "DOTNET_TEST_PROJECTS", + "value": "${DOTNET_TEST_PROJECTS}" + }, + { + "name": "DOTNET_CONFIGURATION", + "value": "${DOTNET_CONFIGURATION}" + }, + { + "name": "DOTNET_PUBLISH", + "value": "true" + }, + { + "name": "DOTNET_RESTORE_SOURCES", + "value": "${DOTNET_RESTORE_SOURCES}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${NAME}:latest" + } + }, + "triggers": [ + { + "type": "ImageChange" + }, + { + "type": "ConfigChange" + }, + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Defines how to deploy the application server" + } + }, + "spec": { + "strategy": { + "type": "Rolling" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "dotnet-app" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "name": "${NAME}" + }, + "template": { + "metadata": { + "name": "${NAME}", + "labels": { + "name": "${NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "dotnet-app", + "image": " ", + "ports": [ + { + "containerPort": 8080 + } + ], + "livenessProbe": { + "httpGet": { + "path": "/", + "port": 8080, + "scheme": "HTTP" + }, + "initialDelaySeconds": 40, + "timeoutSeconds": 15 + }, + "readinessProbe": { + "httpGet": { + "path": "/", + "port": 8080, + "scheme": "HTTP" + }, + "initialDelaySeconds": 10, + "timeoutSeconds": 30 + }, + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "env": [] + } + ] + } + } + } + } + ], + "parameters": [ + { + "name": "NAME", + "displayName": "Name", + "description": "The name assigned to all of the frontend objects defined in this template.", + "required": true, + "value": "dotnet-example" + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory Limit", + "description": "Maximum amount of memory the container can use.", + "required": true, + "value": "512Mi" + }, + { + "name": "DOTNET_IMAGE_STREAM_TAG", + "displayName": ".NET builder", + "required": true, + "description": "The image stream tag which is used to build the code.", + "value": "dotnet:1.0" + }, + { + "name": "NAMESPACE", + "displayName": "Namespace", + "description": "The OpenShift Namespace where the ImageStream resides.", + "required": true, + "value": "openshift" + }, + { + "name": "SOURCE_REPOSITORY_URL", + "displayName": "Git Repository URL", + "description": "The URL of the repository with your application source code.", + "required": true, + "value": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git" + }, + { + "name": "SOURCE_REPOSITORY_REF", + "displayName": "Git Reference", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.", + "value": "dotnetcore-1.0" + }, + { + "name": "CONTEXT_DIR", + "displayName": "Context Directory", + "description": "Set this to use a subdirectory of the source code repository" + }, + { + "name": "APPLICATION_DOMAIN", + "displayName": "Application Hostname", + "description": "The exposed hostname that will route to the .NET Core service, if left blank a value will be defaulted.", + "value": "" + }, + { + "name": "GITHUB_WEBHOOK_SECRET", + "displayName": "GitHub Webhook Secret", + "description": "A secret string used to configure the GitHub webhook.", + "generate": "expression", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "GENERIC_WEBHOOK_SECRET", + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "generate": "expression", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "DOTNET_STARTUP_PROJECT", + "displayName": "Startup Project", + "description": "Set this to the folder containing your startup project.", + "value": "app" + }, + { + "name": "DOTNET_ASSEMBLY_NAME", + "displayName": "Startup Assembly", + "description": "Set this when the assembly name is overridden in the project file." + }, + { + "name": "DOTNET_NPM_TOOLS", + "displayName": "Npm Tools", + "description": "Set this to a space separated list of npm tools needed to publish.", + "value": "bower gulp" + }, + { + "name": "DOTNET_TEST_PROJECTS", + "displayName": "Test projects", + "description": "Set this to a space separated list of test projects to run before publishing." + }, + { + "name": "DOTNET_CONFIGURATION", + "displayName": "Configuration", + "description": "Set this to configuration (Release/Debug).", + "value": "Release" + }, + { + "name": "DOTNET_RESTORE_SOURCES", + "displayName": "NuGet package sources", + "description": "Set this to override the NuGet.config sources." + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dotnet-pgsql-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dotnet-pgsql-persistent.json new file mode 100644 index 000000000..a2b59c2d3 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dotnet-pgsql-persistent.json @@ -0,0 +1,565 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "name": "dotnet-pgsql-persistent", + "annotations": { + "openshift.io/display-name": ".NET Core + PostgreSQL (Persistent)", + "description": "An example .NET Core application with a PostgreSQL database. For more information about using this template, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore.", + "tags": "quickstart,dotnet", + "iconClass": "icon-dotnet", + "template.openshift.io/provider-display-name": "Red Hat, Inc.", + "template.openshift.io/documentation-url": "https://github.com/redhat-developer/s2i-dotnetcore", + "template.openshift.io/support-url": "https://access.redhat.com" + } + }, + "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore.", + "labels": { + "template": "dotnet-pgsql-persistent" + }, + "objects": [ + { + "kind": "Secret", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}" + }, + "stringData": { + "database-password": "${DATABASE_PASSWORD}", + "connect-string": "Host=${DATABASE_SERVICE_NAME};Database=${DATABASE_NAME};Username=${DATABASE_USER};Password=${DATABASE_PASSWORD}" + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Exposes and load balances the application pods", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]" + } + }, + "spec": { + "ports": [ + { + "name": "web", + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "name": "${NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}" + }, + "spec": { + "host": "${APPLICATION_DOMAIN}", + "to": { + "kind": "Service", + "name": "${NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Keeps track of changes in the application image" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Defines how to build the application" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${NAMESPACE}", + "name": "${DOTNET_IMAGE_STREAM_TAG}" + }, + "env": [ + { + "name": "DOTNET_STARTUP_PROJECT", + "value": "${DOTNET_STARTUP_PROJECT}" + }, + { + "name": "DOTNET_ASSEMBLY_NAME", + "value": "${DOTNET_ASSEMBLY_NAME}" + }, + { + "name": "DOTNET_NPM_TOOLS", + "value": "${DOTNET_NPM_TOOLS}" + }, + { + "name": "DOTNET_TEST_PROJECTS", + "value": "${DOTNET_TEST_PROJECTS}" + }, + { + "name": "DOTNET_CONFIGURATION", + "value": "${DOTNET_CONFIGURATION}" + }, + { + "name": "DOTNET_PUBLISH", + "value": "true" + }, + { + "name": "DOTNET_RESTORE_SOURCES", + "value": "${DOTNET_RESTORE_SOURCES}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${NAME}:latest" + } + }, + "triggers": [ + { + "type": "ImageChange" + }, + { + "type": "ConfigChange" + }, + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + } + ], + "postCommit": {} + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Defines how to deploy the application server" + } + }, + "spec": { + "strategy": { + "type": "Rolling", + "rollingParams": { + "updatePeriodSeconds": 1, + "intervalSeconds": 1, + "timeoutSeconds": 600, + "maxUnavailable": "25%", + "maxSurge": "25%" + }, + "resources": {} + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "dotnet-pgsql-persistent" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "name": "${NAME}" + }, + "template": { + "metadata": { + "name": "${NAME}", + "labels": { + "name": "${NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "dotnet-pgsql-persistent", + "image": " ", + "ports": [ + { + "containerPort": 8080 + } + ], + "env": [ + { + "name": "ConnectionString", + "valueFrom": { + "secretKeyRef": { + "name": "${NAME}", + "key": "connect-string" + } + } + } + ], + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/", + "port": 8080, + "scheme": "HTTP" + }, + "initialDelaySeconds": 40, + "timeoutSeconds": 10 + }, + "readinessProbe": { + "httpGet": { + "path": "/", + "port": 8080, + "scheme": "HTTP" + }, + "initialDelaySeconds": 10, + "timeoutSeconds": 30 + } + } + ] + } + } + } + }, + { + "kind": "PersistentVolumeClaim", + "apiVersion": "v1", + "metadata": { + "name": "${DATABASE_SERVICE_NAME}" + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "description": "Exposes the database server" + } + }, + "spec": { + "ports": [ + { + "name": "postgresql", + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "name": "${DATABASE_SERVICE_NAME}" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${DATABASE_SERVICE_NAME}", + "annotations": { + "description": "Defines how to deploy the database" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "openshift", + "name": "postgresql:9.5" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "name": "${DATABASE_SERVICE_NAME}" + }, + "template": { + "metadata": { + "name": "${DATABASE_SERVICE_NAME}", + "labels": { + "name": "${DATABASE_SERVICE_NAME}" + } + }, + "spec": { + "volumes": [ + { + "name": "${DATABASE_SERVICE_NAME}-data", + "persistentVolumeClaim": { + "claimName": "${DATABASE_SERVICE_NAME}" + } + } + ], + "containers": [ + { + "name": "postgresql", + "image": " ", + "ports": [ + { + "containerPort": 5432 + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ + "/bin/sh", + "-i", + "-c", + "psql -h 127.0.0.1 -U ${POSTGRESQL_USER} -q -d ${POSTGRESQL_DATABASE} -c 'SELECT 1'" + ] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "name": "${DATABASE_SERVICE_NAME}-data", + "mountPath": "/var/lib/pgsql/data" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DATABASE_USER}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "valueFrom": { + "secretKeyRef": { + "name": "${NAME}", + "key": "database-password" + } + } + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DATABASE_NAME}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "resources": { + "limits": { + "memory": "${MEMORY_POSTGRESQL_LIMIT}" + } + } + } + ] + } + } + } + } + ], + "parameters": [ + { + "name": "NAME", + "displayName": "Name", + "description": "The name assigned to all of the frontend objects defined in this template.", + "required": true, + "value": "musicstore" + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory Limit", + "required": true, + "description": "Maximum amount of memory the .NET Core container can use.", + "value": "512Mi" + }, + { + "name": "MEMORY_POSTGRESQL_LIMIT", + "displayName": "Memory Limit (PostgreSQL)", + "required": true, + "description": "Maximum amount of memory the PostgreSQL container can use.", + "value": "512Mi" + }, + { + "name": "VOLUME_CAPACITY", + "displayName": "Volume Capacity", + "description": "Volume space available for data, e.g. 512Mi, 2Gi", + "value": "1Gi", + "required": true + }, + { + "name": "DOTNET_IMAGE_STREAM_TAG", + "displayName": ".NET builder", + "required": true, + "description": "The image stream tag which is used to build the code.", + "value": "dotnet:1.1" + }, + { + "name": "NAMESPACE", + "displayName": "Namespace", + "required": true, + "description": "The OpenShift Namespace where the .NET builder ImageStream resides.", + "value": "openshift" + }, + { + "name": "SOURCE_REPOSITORY_URL", + "displayName": "Git Repository URL", + "required": true, + "description": "The URL of the repository with your application source code.", + "value": "https://github.com/redhat-developer/s2i-aspnet-musicstore-ex.git" + }, + { + "name": "SOURCE_REPOSITORY_REF", + "displayName": "Git Reference", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.", + "value": "rel/1.1-example" + }, + { + "name": "CONTEXT_DIR", + "displayName": "Context Directory", + "description": "Set this to the relative path to your project if it is not in the root of your repository." + }, + { + "name": "DOTNET_STARTUP_PROJECT", + "displayName": "Startup Project", + "description": "Set this to the folder containing your startup project.", + "value": "samples/MusicStore" + }, + { + "name": "DOTNET_ASSEMBLY_NAME", + "displayName": "Startup Assembly", + "description": "Set this when the assembly name is overridden in the project file." + }, + { + "name": "DOTNET_NPM_TOOLS", + "displayName": "Npm Tools", + "description": "Set this to a space separated list of npm tools needed to publish." + }, + { + "name": "DOTNET_TEST_PROJECTS", + "displayName": "Test projects", + "description": "Set this to a space separated list of test projects to run before publishing." + }, + { + "name": "DOTNET_CONFIGURATION", + "displayName": "Configuration", + "description": "Set this to configuration (Release/Debug).", + "value": "Release" + }, + { + "name": "DOTNET_RESTORE_SOURCES", + "displayName": "NuGet package sources", + "description": "Set this to override the NuGet.config sources." + }, + { + "name": "APPLICATION_DOMAIN", + "displayName": "Application Hostname", + "description": "The exposed hostname that will route to the .NET Core service, if left blank a value will be defaulted.", + "value": "" + }, + { + "name": "GITHUB_WEBHOOK_SECRET", + "displayName": "GitHub Webhook Secret", + "description": "A secret string used to configure the GitHub webhook.", + "generate": "expression", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "DATABASE_SERVICE_NAME", + "required": true, + "displayName": "Database Service Name", + "value": "postgresql" + }, + { + "name": "DATABASE_USER", + "displayName": "Database Username", + "generate": "expression", + "from": "user[A-Z0-9]{3}" + }, + { + "name": "DATABASE_PASSWORD", + "displayName": "Database Password", + "generate": "expression", + "from": "[a-zA-Z0-9]{8}" + }, + { + "name": "DATABASE_NAME", + "required": true, + "displayName": "Database Name", + "value": "musicstore" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "displayName": "Maximum Database Connections", + "value": "100" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "displayName": "Shared Buffer Amount", + "value": "12MB" + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/httpd.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/httpd.json new file mode 100644 index 000000000..ac671cc06 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/httpd.json @@ -0,0 +1,274 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "name": "httpd-example", + "annotations": { + "openshift.io/display-name": "Httpd", + "description": "An example Httpd application that serves static content. For more information about using this template, including OpenShift considerations, see https://github.com/openshift/httpd-ex/blob/master/README.md.", + "tags": "quickstart,httpd", + "iconClass": "icon-apache", + "template.openshift.io/long-description": "This template defines resources needed to develop a static application served by httpd, including a build configuration and application deployment configuration.", + "template.openshift.io/provider-display-name": "Red Hat, Inc.", + "template.openshift.io/documentation-url": "https://github.com/openshift/httpd-ex", + "template.openshift.io/support-url": "https://access.redhat.com" + } + }, + "message": "The following service(s) have been created in your project: ${NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/openshift/httpd-ex/blob/master/README.md.", + "labels": { + "template": "httpd-example" + }, + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Exposes and load balances the application pods" + } + }, + "spec": { + "ports": [ + { + "name": "web", + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "name": "${NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } + }, + "spec": { + "host": "${APPLICATION_DOMAIN}", + "to": { + "kind": "Service", + "name": "${NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Keeps track of changes in the application image" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Defines how to build the application" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${NAMESPACE}", + "name": "httpd:2.4" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${NAME}:latest" + } + }, + "triggers": [ + { + "type": "ImageChange" + }, + { + "type": "ConfigChange" + }, + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${NAME}", + "annotations": { + "description": "Defines how to deploy the application server" + } + }, + "spec": { + "strategy": { + "type": "Rolling" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "httpd-example" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "name": "${NAME}" + }, + "template": { + "metadata": { + "name": "${NAME}", + "labels": { + "name": "${NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "httpd-example", + "image": " ", + "ports": [ + { + "containerPort": 8080 + } + ], + "readinessProbe": { + "timeoutSeconds": 3, + "initialDelaySeconds": 3, + "httpGet": { + "path": "/", + "port": 8080 + } + }, + "livenessProbe": { + "timeoutSeconds": 3, + "initialDelaySeconds": 30, + "httpGet": { + "path": "/", + "port": 8080 + } + }, + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "env": [ + ], + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ], + "parameters": [ + { + "name": "NAME", + "displayName": "Name", + "description": "The name assigned to all of the frontend objects defined in this template.", + "required": true, + "value": "httpd-example" + }, + { + "name": "NAMESPACE", + "displayName": "Namespace", + "description": "The OpenShift Namespace where the ImageStream resides.", + "required": true, + "value": "openshift" + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory Limit", + "description": "Maximum amount of memory the container can use.", + "required": true, + "value": "512Mi" + }, + { + "name": "SOURCE_REPOSITORY_URL", + "displayName": "Git Repository URL", + "description": "The URL of the repository with your application source code.", + "required": true, + "value": "https://github.com/openshift/httpd-ex.git" + }, + { + "name": "SOURCE_REPOSITORY_REF", + "displayName": "Git Reference", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "CONTEXT_DIR", + "displayName": "Context Directory", + "description": "Set this to the relative path to your project if it is not in the root of your repository." + }, + { + "name": "APPLICATION_DOMAIN", + "displayName": "Application Hostname", + "description": "The exposed hostname that will route to the httpd service, if left blank a value will be defaulted.", + "value": "" + }, + { + "name": "GITHUB_WEBHOOK_SECRET", + "displayName": "GitHub Webhook Secret", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", + "generate": "expression", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "GENERIC_WEBHOOK_SECRET", + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "generate": "expression", + "from": "[a-zA-Z0-9]{40}" + } + ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-ephemeral-template.json index b0aef3cfc..ce96684a9 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-ephemeral-template.json @@ -22,7 +22,10 @@ "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "to": { @@ -109,6 +112,10 @@ "name": "OPENSHIFT_ENABLE_REDIRECT_PROMPT", "value": "true" }, + { + "name": "OPENSHIFT_JENKINS_JVM_ARCH", + "value": "${JVM_ARCH}" + }, { "name": "KUBERNETES_MASTER", "value": "https://kubernetes.default:443" @@ -254,6 +261,12 @@ "description": "Whether to enable OAuth OpenShift integration. If false, the static account 'admin' will be initialized with the password 'password'.", "value": "true" }, + { + "name": "JVM_ARCH", + "displayName": "Jenkins JVM Architecture", + "description": "Whether Jenkins runs with a 32 bit (i386) or 64 bit (x86_64) JVM.", + "value": "i386" + }, { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-persistent-template.json index a542de219..34b2b920b 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-persistent-template.json @@ -22,7 +22,10 @@ "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", - "creationTimestamp": null + "creationTimestamp": null, + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "to": { @@ -126,6 +129,10 @@ "name": "OPENSHIFT_ENABLE_REDIRECT_PROMPT", "value": "true" }, + { + "name": "OPENSHIFT_JENKINS_JVM_ARCH", + "value": "${JVM_ARCH}" + }, { "name": "KUBERNETES_MASTER", "value": "https://kubernetes.default:443" @@ -271,6 +278,12 @@ "description": "Whether to enable OAuth OpenShift integration. If false, the static account 'admin' will be initialized with the password 'password'.", "value": "true" }, + { + "name": "JVM_ARCH", + "displayName": "Jenkins JVM Architecture", + "description": "Whether Jenkins runs with a 32 bit (i386) or 64 bit (x86_64) JVM.", + "value": "i386" + }, { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb-persistent.json index 6ee999cb1..a9c365361 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb-persistent.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb-persistent.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -102,7 +105,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", - "name": "nodejs:4" + "name": "nodejs:6" }, "env": [ { @@ -154,7 +157,7 @@ }, "spec": { "strategy": { - "type": "Rolling" + "type": "Recreate" }, "triggers": [ { @@ -491,7 +494,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb.json index 5c177a7e0..53a6147d5 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb.json @@ -58,7 +58,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -102,7 +105,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", - "name": "nodejs:4" + "name": "nodejs:6" }, "env": [ { @@ -154,7 +157,7 @@ }, "spec": { "strategy": { - "type": "Rolling" + "type": "Recreate" }, "triggers": [ { @@ -467,7 +470,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/pvc.yml b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/pvc.yml new file mode 100644 index 000000000..0bbb8e625 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/pvc.yml @@ -0,0 +1,49 @@ +apiVersion: v1 +kind: Template +metadata: + name: "amp-pvc" +objects: + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "system-storage" + spec: + accessModes: + - "ReadWriteMany" + resources: + requests: + storage: "100Mi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "mysql-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "system-redis-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + +- apiVersion: "v1" + kind: "PersistentVolumeClaim" + metadata: + name: "backend-redis-storage" + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql-persistent.json index b400cfdb3..f07a43071 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql-persistent.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql-persistent.json @@ -23,7 +23,11 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['application-user']}", + "template.openshift.io/expose-password": "{.data['application-password']}" + } }, "stringData" : { "database-user" : "${DATABASE_USER}", @@ -60,7 +64,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -526,7 +533,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql.json index fa67412ff..a7992c988 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql.json @@ -23,7 +23,11 @@ "kind": "Secret", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-username": "{.data['application-user']}", + "template.openshift.io/expose-password": "{.data['application-password']}" + } }, "stringData" : { "database-user" : "${DATABASE_USER}", @@ -60,7 +64,10 @@ "kind": "Route", "apiVersion": "v1", "metadata": { - "name": "${NAME}" + "name": "${NAME}", + "annotations": { + "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}" + } }, "spec": { "host": "${APPLICATION_DOMAIN}", @@ -500,7 +507,7 @@ { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", - "description": "A secret string used to configure the GitHub webhook.", + "description": "Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/wildcard.yml b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/wildcard.yml new file mode 100644 index 000000000..00dedecd5 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/wildcard.yml @@ -0,0 +1,158 @@ +apiVersion: v1 +kind: Template +metadata: + name: "amp-apicast-wildcard-router" +objects: + +- apiVersion: v1 + kind: DeploymentConfig + metadata: + name: apicast-router + spec: + replicas: 1 + selector: + deploymentconfig: apicast-router + strategy: + type: Rolling + template: + metadata: + labels: + deploymentconfig: apicast-router + spec: + volumes: + - name: apicast-router-config + configMap: + name: apicast-router-config + items: + - key: router.conf + path: router.conf + containers: + - env: + - name: APICAST_CONFIGURATION_LOADER + value: "lazy" + - name: APICAST_CONFIGURATION_CACHE + value: "0" + image: 3scale-amp20/apicast-gateway:1.0-3 + imagePullPolicy: IfNotPresent + name: apicast-router + command: ['bin/apicast'] + livenessProbe: + tcpSocket: + port: router + initialDelaySeconds: 5 + timeoutSeconds: 5 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /status/ready + port: management + initialDelaySeconds: 5 + timeoutSeconds: 5 + periodSeconds: 30 + volumeMounts: + - name: apicast-router-config + mountPath: /opt/app-root/src/sites.d/ + readOnly: true + ports: + - containerPort: 8082 + name: router + protocol: TCP + - containerPort: 8090 + name: management + protocol: TCP + triggers: + - type: ConfigChange + +- apiVersion: v1 + kind: Service + metadata: + name: apicast-router + spec: + ports: + - name: router + port: 80 + protocol: TCP + targetPort: router + selector: + deploymentconfig: apicast-router + +- apiVersion: v1 + kind: ConfigMap + metadata: + name: apicast-router-config + data: + router.conf: |- + upstream wildcard { + server 0.0.0.1:1; + + balancer_by_lua_block { + local round_robin = require 'resty.balancer.round_robin' + local balancer = round_robin.new() + local peers = balancer:peers(ngx.ctx.apicast) + + local peer, err = balancer:set_peer(peers) + + if not peer then + ngx.status = ngx.HTTP_SERVICE_UNAVAILABLE + ngx.log(ngx.ERR, "failed to set current backend peer: ", err) + ngx.exit(ngx.status) + end + } + + keepalive 1024; + } + + server { + listen 8082; + server_name ~-(?apicast-(staging|production))\.; + access_log /dev/stdout combined; + + location / { + access_by_lua_block { + local resolver = require('resty.resolver'):instance() + local servers = resolver:get_servers(ngx.var.apicast, { port = 8080 }) + + if #servers == 0 then + ngx.status = ngx.HTTP_BAD_GATEWAY + ngx.exit(ngx.HTTP_OK) + end + + ngx.ctx.apicast = servers + } + proxy_http_version 1.1; + proxy_pass $scheme://wildcard; + proxy_set_header Host $host; + proxy_set_header Connection ""; + } + } + +- apiVersion: v1 + kind: Route + metadata: + name: apicast-wildcard-router + labels: + app: apicast-wildcard-router + spec: + host: apicast-${TENANT_NAME}.${WILDCARD_DOMAIN} + to: + kind: Service + name: apicast-router + port: + targetPort: router + wildcardPolicy: Subdomain + tls: + termination: edge + insecureEdgeTerminationPolicy: Allow + +parameters: +- name: AMP_RELEASE + description: "AMP release tag." + value: 2.0.0-CR2-redhat-1 + required: true +- name: WILDCARD_DOMAIN + description: Root domain for the wildcard routes. Eg. example.com will generate 3scale-admin.example.com. + required: true +- name: TENANT_NAME + description: "Domain name under the root that Admin UI will be available with -admin suffix." + required: true + value: "3scale" -- cgit v1.2.3 From 7277203b1d5962d83c98d1b5f43c77312bcf9d6f Mon Sep 17 00:00:00 2001 From: ewolinetz Date: Fri, 30 Jun 2017 12:17:12 -0500 Subject: Updating to use openshift.master.etcd_hosts for etcd servers for apiserver --- roles/openshift_service_catalog/tasks/install.yml | 1 + roles/openshift_service_catalog/templates/api_server.j2 | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/openshift_service_catalog/tasks/install.yml b/roles/openshift_service_catalog/tasks/install.yml index c1773b5f6..5da87649c 100644 --- a/roles/openshift_service_catalog/tasks/install.yml +++ b/roles/openshift_service_catalog/tasks/install.yml @@ -98,6 +98,7 @@ cpu_requests: none memory_request: none cors_allowed_origin: localhost + etcd_servers: "{{ openshift.master.etcd_urls | join(',') }}" node_selector: "{{ openshift_service_catalog_nodeselector | default ({'openshift-infra': 'apiserver'}) }}" - name: Set Service Catalog API Server daemonset diff --git a/roles/openshift_service_catalog/templates/api_server.j2 b/roles/openshift_service_catalog/templates/api_server.j2 index 8ae6b6c8d..0ae2b7712 100644 --- a/roles/openshift_service_catalog/templates/api_server.j2 +++ b/roles/openshift_service_catalog/templates/api_server.j2 @@ -29,8 +29,7 @@ spec: - --secure-port - "6443" - --etcd-servers -# TODO: come back and get openshift.common.hostname to work - - https://{{ openshift.common.ip }}:{{ openshift.master.etcd_port }} + - {{ etcd_servers }} - --etcd-cafile - /etc/origin/master/master.etcd-ca.crt - --etcd-certfile -- cgit v1.2.3 From c676e27bf29c2decc39bef186b43081e861e92e6 Mon Sep 17 00:00:00 2001 From: Andrew Butcher Date: Fri, 30 Jun 2017 11:23:29 -0400 Subject: Set OPENSHIFT_DEFAULT_REGISTRY in registry dc. --- roles/openshift_hosted/tasks/registry/registry.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/roles/openshift_hosted/tasks/registry/registry.yml b/roles/openshift_hosted/tasks/registry/registry.yml index 2eeb2e7ce..b946ec8ca 100644 --- a/roles/openshift_hosted/tasks/registry/registry.yml +++ b/roles/openshift_hosted/tasks/registry/registry.yml @@ -56,6 +56,11 @@ openshift_hosted_registry_force: - False +- name: Update registry environment variables when pushing via dns + set_fact: + openshift_hosted_registry_env_vars: "{{ openshift_hosted_registry_env_vars | combine({'OPENSHIFT_DEFAULT_REGISTRY':'docker-registry.default.svc:5000'}) }}" + when: openshift_push_via_dns | default(false) | bool + - name: Create the registry service account oc_serviceaccount: name: "{{ openshift_hosted_registry_serviceaccount }}" -- cgit v1.2.3 From afdf701f9ecdb46fe513f003d03d67cf484253d3 Mon Sep 17 00:00:00 2001 From: ewolinetz Date: Fri, 30 Jun 2017 14:40:56 -0500 Subject: Using ca-bundle.crt to connect to local etcd if master.etcd-ca.crt DNE --- roles/openshift_service_catalog/tasks/install.yml | 7 +++++++ roles/openshift_service_catalog/templates/api_server.j2 | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/roles/openshift_service_catalog/tasks/install.yml b/roles/openshift_service_catalog/tasks/install.yml index 5da87649c..6e8301ffe 100644 --- a/roles/openshift_service_catalog/tasks/install.yml +++ b/roles/openshift_service_catalog/tasks/install.yml @@ -86,6 +86,12 @@ resource_name: admin user: "system:serviceaccount:kube-service-catalog:default" +- name: Checking for master.etcd-ca.crt + stat: + path: /etc/origin/master/master.etcd-ca.crt + register: etcd_ca_crt + check_mode: no + ## api server - template: src: api_server.j2 @@ -99,6 +105,7 @@ memory_request: none cors_allowed_origin: localhost etcd_servers: "{{ openshift.master.etcd_urls | join(',') }}" + etcd_cafile: "{{ '/etc/origin/master/master.etcd-ca.crt' if etcd_ca_crt.stat.exists else '/etc/origin/master/ca-bundle.crt' }}" node_selector: "{{ openshift_service_catalog_nodeselector | default ({'openshift-infra': 'apiserver'}) }}" - name: Set Service Catalog API Server daemonset diff --git a/roles/openshift_service_catalog/templates/api_server.j2 b/roles/openshift_service_catalog/templates/api_server.j2 index 0ae2b7712..c09834fd4 100644 --- a/roles/openshift_service_catalog/templates/api_server.j2 +++ b/roles/openshift_service_catalog/templates/api_server.j2 @@ -31,7 +31,7 @@ spec: - --etcd-servers - {{ etcd_servers }} - --etcd-cafile - - /etc/origin/master/master.etcd-ca.crt + - {{ etcd_cafile }} - --etcd-certfile - /etc/origin/master/master.etcd-client.crt - --etcd-keyfile -- cgit v1.2.3 From d195bb2dba76da80df33b777a13d2d719e74b735 Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Mon, 19 Jun 2017 16:15:42 -0400 Subject: Run dns on the node and use that for dnsmasq --- inventory/byo/hosts.origin.example | 4 +++ inventory/byo/hosts.ose.example | 4 +++ playbooks/adhoc/uninstall.yml | 25 +++++++++++------- .../upgrades/upgrade_control_plane.yml | 2 +- .../openshift-cluster/upgrades/upgrade_nodes.yml | 2 +- roles/openshift_node/defaults/main.yml | 1 + roles/openshift_node/meta/main.yml | 1 + roles/openshift_node/tasks/systemd_units.yml | 2 +- .../templates/atomic-openshift-node.service.j2 | 22 ---------------- roles/openshift_node/templates/node.service.j2 | 30 ++++++++++++++++++++++ roles/openshift_node/templates/node.yaml.v1.j2 | 4 +++ .../templates/openshift.docker.node.service | 6 +++++ .../templates/origin-node.service.j2 | 21 --------------- roles/openshift_node_dnsmasq/defaults/main.yml | 2 ++ .../files/networkmanager/99-origin-dns.sh | 11 +++++--- roles/openshift_node_dnsmasq/tasks/main.yml | 11 ++++++++ .../templates/node-dnsmasq.conf.j2 | 2 ++ .../templates/origin-dns.conf.j2 | 2 +- roles/openshift_node_upgrade/README.md | 1 + roles/openshift_node_upgrade/defaults/main.yml | 2 ++ roles/openshift_node_upgrade/tasks/rpm_upgrade.yml | 2 +- .../templates/atomic-openshift-node.service.j2 | 1 - .../templates/node.service.j2 | 30 ++++++++++++++++++++++ .../templates/openshift.docker.node.service | 10 +++++++- .../templates/origin-node.service.j2 | 1 - roles/openshift_sanitize_inventory/tasks/main.yml | 4 +++ .../tasks/unsupported.yml | 12 +++++++++ 27 files changed, 152 insertions(+), 63 deletions(-) delete mode 100644 roles/openshift_node/templates/atomic-openshift-node.service.j2 create mode 100644 roles/openshift_node/templates/node.service.j2 delete mode 100644 roles/openshift_node/templates/origin-node.service.j2 create mode 100644 roles/openshift_node_dnsmasq/defaults/main.yml create mode 100644 roles/openshift_node_dnsmasq/templates/node-dnsmasq.conf.j2 create mode 100644 roles/openshift_node_upgrade/defaults/main.yml delete mode 120000 roles/openshift_node_upgrade/templates/atomic-openshift-node.service.j2 create mode 100644 roles/openshift_node_upgrade/templates/node.service.j2 delete mode 120000 roles/openshift_node_upgrade/templates/origin-node.service.j2 create mode 100644 roles/openshift_sanitize_inventory/tasks/unsupported.yml diff --git a/inventory/byo/hosts.origin.example b/inventory/byo/hosts.origin.example index b38c6e6b6..e6bc6c829 100644 --- a/inventory/byo/hosts.origin.example +++ b/inventory/byo/hosts.origin.example @@ -10,6 +10,10 @@ nfs # Set variables common for all OSEv3 hosts [OSEv3:vars] +# Enable unsupported configurations, things that will yield a partially +# functioning cluster but would not be supported for production use +#openshift_enable_unsupported_configurations=false + # SSH user, this user should allow ssh based auth without requiring a # password. If using ssh key based auth, then the key should be managed by an # ssh agent. diff --git a/inventory/byo/hosts.ose.example b/inventory/byo/hosts.ose.example index e5e9c7342..928da40fa 100644 --- a/inventory/byo/hosts.ose.example +++ b/inventory/byo/hosts.ose.example @@ -10,6 +10,10 @@ nfs # Set variables common for all OSEv3 hosts [OSEv3:vars] +# Enable unsupported configurations, things that will yield a partially +# functioning cluster but would not be supported for production use +#openshift_enable_unsupported_configurations=false + # SSH user, this user should allow ssh based auth without requiring a # password. If using ssh key based auth, then the key should be managed by an # ssh agent. diff --git a/playbooks/adhoc/uninstall.yml b/playbooks/adhoc/uninstall.yml index ddd2ecebd..a1f541712 100644 --- a/playbooks/adhoc/uninstall.yml +++ b/playbooks/adhoc/uninstall.yml @@ -26,6 +26,20 @@ - hosts: nodes become: yes tasks: + - name: Remove dnsmasq dispatcher + file: + path: "{{ item }}" + state: absent + with_items: + - /etc/dnsmasq.d/origin-dns.conf + - /etc/dnsmasq.d/origin-upstream-dns.conf + - /etc/dnsmasq.d/openshift-ansible.conf + - /etc/NetworkManager/dispatcher.d/99-origin-dns.sh + when: openshift_use_dnsmasq | default(true) | bool + - service: + name: NetworkManager + state: restarted + when: openshift_use_dnsmasq | default(true) | bool - name: Stop services service: name={{ item }} state=stopped with_items: @@ -279,9 +293,6 @@ with_items: - /etc/ansible/facts.d/openshift.fact - /etc/atomic-enterprise - - /etc/dnsmasq.d/origin-dns.conf - - /etc/dnsmasq.d/origin-upstream-dns.conf - - /etc/NetworkManager/dispatcher.d/99-origin-dns.sh - /etc/openshift - /etc/openshift-sdn - /etc/sysconfig/atomic-enterprise-node @@ -307,18 +318,14 @@ - name: restart container-engine service: name=container-engine state=restarted - ignore_errors: true + failed_when: false register: container_engine - name: restart docker service: name=docker state=restarted - ignore_errors: true + failed_when: false when: not (container_engine | changed) - - name: restart NetworkManager - service: name=NetworkManager state=restarted - when: openshift_use_dnsmasq | default(true) | bool - - hosts: masters become: yes vars: diff --git a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml index 6738ce11f..e7fc10af8 100644 --- a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml @@ -295,8 +295,8 @@ - lib_openshift - openshift_facts - docker - - openshift_node_upgrade - openshift_node_dnsmasq + - openshift_node_upgrade post_tasks: - name: Set node schedulability diff --git a/playbooks/common/openshift-cluster/upgrades/upgrade_nodes.yml b/playbooks/common/openshift-cluster/upgrades/upgrade_nodes.yml index 35a50cf4e..1d1e440d4 100644 --- a/playbooks/common/openshift-cluster/upgrades/upgrade_nodes.yml +++ b/playbooks/common/openshift-cluster/upgrades/upgrade_nodes.yml @@ -33,8 +33,8 @@ - lib_openshift - openshift_facts - docker - - openshift_node_upgrade - openshift_node_dnsmasq + - openshift_node_upgrade - role: openshift_excluder r_openshift_excluder_action: enable r_openshift_excluder_service_type: "{{ openshift.common.service_type }}" diff --git a/roles/openshift_node/defaults/main.yml b/roles/openshift_node/defaults/main.yml index 5904ca9bc..80049fdd1 100644 --- a/roles/openshift_node/defaults/main.yml +++ b/roles/openshift_node/defaults/main.yml @@ -12,3 +12,4 @@ os_firewall_allow: - service: Calico BGP Port port: 179/tcp when: openshift.common.use_calico | bool +r_openshift_node_dns_port: "{{ openshift_node_dns_port | default(8054) }}" diff --git a/roles/openshift_node/meta/main.yml b/roles/openshift_node/meta/main.yml index 3b7e8126a..508bb751d 100644 --- a/roles/openshift_node/meta/main.yml +++ b/roles/openshift_node/meta/main.yml @@ -45,4 +45,5 @@ dependencies: port: "{{ openshift_node_port_range | default('') }}/udp" when: openshift_node_port_range is defined - role: openshift_node_dnsmasq + r_openshift_node_dnsmasq_port: "{{ r_openshift_node_dns_port }}" when: openshift.common.use_dnsmasq | bool diff --git a/roles/openshift_node/tasks/systemd_units.yml b/roles/openshift_node/tasks/systemd_units.yml index e3ce5df3d..2ccc28461 100644 --- a/roles/openshift_node/tasks/systemd_units.yml +++ b/roles/openshift_node/tasks/systemd_units.yml @@ -34,7 +34,7 @@ - name: Install Node service file template: dest: "/etc/systemd/system/{{ openshift.common.service_type }}-node.service" - src: "{{ openshift.common.service_type }}-node.service.j2" + src: "node.service.j2" register: install_node_result when: not openshift.common.is_containerized | bool notify: diff --git a/roles/openshift_node/templates/atomic-openshift-node.service.j2 b/roles/openshift_node/templates/atomic-openshift-node.service.j2 deleted file mode 100644 index 80232094a..000000000 --- a/roles/openshift_node/templates/atomic-openshift-node.service.j2 +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Description=Atomic OpenShift Node -After={{ openshift.docker.service_name }}.service -After=openvswitch.service -Wants={{ openshift.docker.service_name }}.service -Documentation=https://github.com/openshift/origin - -[Service] -Type=notify -EnvironmentFile=/etc/sysconfig/atomic-openshift-node -Environment=GOTRACEBACK=crash -ExecStart=/usr/bin/openshift start node --config=${CONFIG_FILE} $OPTIONS -LimitNOFILE=65536 -LimitCORE=infinity -WorkingDirectory=/var/lib/origin/ -SyslogIdentifier=atomic-openshift-node -Restart=always -RestartSec=5s -OOMScoreAdjust=-999 - -[Install] -WantedBy=multi-user.target diff --git a/roles/openshift_node/templates/node.service.j2 b/roles/openshift_node/templates/node.service.j2 new file mode 100644 index 000000000..fed8e21f5 --- /dev/null +++ b/roles/openshift_node/templates/node.service.j2 @@ -0,0 +1,30 @@ +[Unit] +Description=OpenShift Node +After={{ openshift.docker.service_name }}.service +Wants=openvswitch.service +After=ovsdb-server.service +After=ovs-vswitchd.service +Wants={{ openshift.docker.service_name }}.service +Documentation=https://github.com/openshift/origin +Requires=dnsmasq.service +After=dnsmasq.service + +[Service] +Type=notify +EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node +Environment=GOTRACEBACK=crash +ExecStartPre=/usr/bin/cp /etc/origin/node/node-dnsmasq.conf /etc/dnsmasq.d/ +ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1#{{ r_openshift_node_dns_port}},/{{ openshift.common.dns_domain }}/127.0.0.1#{{ r_openshift_node_dns_port}} +ExecStopPost=/usr/bin/rm /etc/dnsmasq.d/node-dnsmasq.conf +ExecStopPost=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string: +ExecStart=/usr/bin/openshift start node --config=${CONFIG_FILE} $OPTIONS +LimitNOFILE=65536 +LimitCORE=infinity +WorkingDirectory=/var/lib/origin/ +SyslogIdentifier={{ openshift.common.service_type }}-node +Restart=always +RestartSec=5s +OOMScoreAdjust=-999 + +[Install] +WantedBy=multi-user.target diff --git a/roles/openshift_node/templates/node.yaml.v1.j2 b/roles/openshift_node/templates/node.yaml.v1.j2 index f2f929232..8e6b3e070 100644 --- a/roles/openshift_node/templates/node.yaml.v1.j2 +++ b/roles/openshift_node/templates/node.yaml.v1.j2 @@ -1,5 +1,9 @@ allowDisabledDocker: false apiVersion: v1 +{% if openshift.common.version_gte_3_6 %} +dnsBindAddress: 0.0.0.0:{{ r_openshift_node_dns_port }} +dnsRecursiveResolvConf: /etc/origin/node/resolv.conf +{% endif %} dnsDomain: {{ openshift.common.dns_domain }} {% if 'dns_ip' in openshift.node %} dnsIP: {{ openshift.node.dns_ip }} diff --git a/roles/openshift_node/templates/openshift.docker.node.service b/roles/openshift_node/templates/openshift.docker.node.service index cd0a1a60b..9649fec38 100644 --- a/roles/openshift_node/templates/openshift.docker.node.service +++ b/roles/openshift_node/templates/openshift.docker.node.service @@ -12,14 +12,20 @@ After=ovs-vswitchd.service Wants={{ openshift.common.service_type }}-master.service Requires={{ openshift.common.service_type }}-node-dep.service After={{ openshift.common.service_type }}-node-dep.service +Requires=dnsmasq.service +After=dnsmasq.service [Service] EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node-dep ExecStartPre=-/usr/bin/docker rm -f {{ openshift.common.service_type }}-node +ExecStartPre=/usr/bin/cp /etc/origin/node/node-dnsmasq.conf /etc/dnsmasq.d/ +ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1#{{ r_openshift_node_dns_port}},/{{ openshift.common.dns_domain }}/127.0.0.1#{{ r_openshift_node_dns_port}} ExecStart=/usr/bin/docker run --name {{ openshift.common.service_type }}-node --rm --privileged --net=host --pid=host --env-file=/etc/sysconfig/{{ openshift.common.service_type }}-node -v /:/rootfs:ro,rslave -e CONFIG_FILE=${CONFIG_FILE} -e OPTIONS=${OPTIONS} -e HOST=/rootfs -e HOST_ETC=/host-etc -v {{ openshift.common.data_dir }}:{{ openshift.common.data_dir }}{{ ':rslave' if openshift.docker.gte_1_10 | default(False) | bool else '' }} -v {{ openshift.common.config_base }}/node:{{ openshift.common.config_base }}/node {% if openshift_cloudprovider_kind | default('') != '' -%} -v {{ openshift.common.config_base }}/cloudprovider:{{ openshift.common.config_base}}/cloudprovider {% endif -%} -v /etc/localtime:/etc/localtime:ro -v /etc/machine-id:/etc/machine-id:ro -v /run:/run -v /sys:/sys:rw -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /usr/bin/docker:/usr/bin/docker:ro -v /var/lib/docker:/var/lib/docker -v /lib/modules:/lib/modules -v /etc/origin/openvswitch:/etc/openvswitch -v /etc/origin/sdn:/etc/openshift-sdn -v /var/lib/cni:/var/lib/cni -v /etc/systemd/system:/host-etc/systemd/system -v /var/log:/var/log -v /dev:/dev $DOCKER_ADDTL_BIND_MOUNTS -v /etc/pki:/etc/pki:ro {{ openshift.node.node_image }}:${IMAGE_VERSION} ExecStartPost=/usr/bin/sleep 10 ExecStop=/usr/bin/docker stop {{ openshift.common.service_type }}-node +ExecStopPost=/usr/bin/rm /etc/dnsmasq.d/node-dnsmasq.conf +ExecStopPost=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string: SyslogIdentifier={{ openshift.common.service_type }}-node Restart=always RestartSec=5s diff --git a/roles/openshift_node/templates/origin-node.service.j2 b/roles/openshift_node/templates/origin-node.service.j2 deleted file mode 100644 index 8047301e6..000000000 --- a/roles/openshift_node/templates/origin-node.service.j2 +++ /dev/null @@ -1,21 +0,0 @@ -[Unit] -Description=Origin Node -After={{ openshift.docker.service_name }}.service -Wants={{ openshift.docker.service_name }}.service -Documentation=https://github.com/openshift/origin - -[Service] -Type=notify -EnvironmentFile=/etc/sysconfig/origin-node -Environment=GOTRACEBACK=crash -ExecStart=/usr/bin/openshift start node --config=${CONFIG_FILE} $OPTIONS -LimitNOFILE=65536 -LimitCORE=infinity -WorkingDirectory=/var/lib/origin/ -SyslogIdentifier=origin-node -Restart=always -RestartSec=5s -OOMScoreAdjust=-999 - -[Install] -WantedBy=multi-user.target diff --git a/roles/openshift_node_dnsmasq/defaults/main.yml b/roles/openshift_node_dnsmasq/defaults/main.yml new file mode 100644 index 000000000..06b2c4123 --- /dev/null +++ b/roles/openshift_node_dnsmasq/defaults/main.yml @@ -0,0 +1,2 @@ +--- +r_openshift_node_dnsmasq_port: 8054 diff --git a/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh b/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh index c68073a10..2c466e4f0 100755 --- a/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh +++ b/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh @@ -52,6 +52,7 @@ no-resolv domain-needed server=/cluster.local/172.30.0.1 server=/30.172.in-addr.arpa/172.30.0.1 +enable-dbus EOF # New config file, must restart NEEDS_RESTART=1 @@ -89,13 +90,17 @@ EOF systemctl restart dnsmasq fi - # Only if dnsmasq is running properly make it our only nameserver + # Only if dnsmasq is running properly make it our only nameserver, copy + # original resolv.conf to /etc/origin/node/resolv.conf for node service to + # bypass dnsmasq if `systemctl -q is-active dnsmasq.service`; then - sed -e '/^nameserver.*$/d' /etc/resolv.conf > ${NEW_RESOLV_CONF} - echo "nameserver "${def_route_ip}"" >> ${NEW_RESOLV_CONF} if ! grep -q '99-origin-dns.sh' ${NEW_RESOLV_CONF}; then echo "# nameserver updated by /etc/NetworkManager/dispatcher.d/99-origin-dns.sh" >> ${NEW_RESOLV_CONF} + cp /etc/resolv.conf /etc/origin/node/resolv.conf fi + sed -e '/^nameserver.*$/d' /etc/resolv.conf > ${NEW_RESOLV_CONF} + echo "nameserver "${def_route_ip}"" >> ${NEW_RESOLV_CONF} + if ! grep -q 'search.*cluster.local' ${NEW_RESOLV_CONF}; then sed -i '/^search/ s/$/ cluster.local/' ${NEW_RESOLV_CONF} fi diff --git a/roles/openshift_node_dnsmasq/tasks/main.yml b/roles/openshift_node_dnsmasq/tasks/main.yml index 3311f7006..d0221a94b 100644 --- a/roles/openshift_node_dnsmasq/tasks/main.yml +++ b/roles/openshift_node_dnsmasq/tasks/main.yml @@ -14,6 +14,17 @@ package: name=dnsmasq state=installed when: not openshift.common.is_atomic | bool +# this file is copied to /etc/dnsmasq.d/ when the node starts and is removed +# when the node stops. A dbus-message is sent to dnsmasq to add the same entries +# so that dnsmasq doesn't need to be restarted. Once we can use dnsmasq 2.77 or +# newer we can use --server-file option to update the servers dynamically and +# reload them by sending dnsmasq a SIGHUP. We write the file in case someone else +# triggers a restart of dnsmasq but not a node restart. +- name: Install node-dnsmasq.conf + template: + src: node-dnsmasq.conf.j2 + dest: /etc/origin/node/node-dnsmasq.conf + - name: Install dnsmasq configuration template: src: origin-dns.conf.j2 diff --git a/roles/openshift_node_dnsmasq/templates/node-dnsmasq.conf.j2 b/roles/openshift_node_dnsmasq/templates/node-dnsmasq.conf.j2 new file mode 100644 index 000000000..4377403df --- /dev/null +++ b/roles/openshift_node_dnsmasq/templates/node-dnsmasq.conf.j2 @@ -0,0 +1,2 @@ +server=/in-addr.arpa/127.0.0.1#{{ r_openshift_node_dnsmasq_port }} +server=/{{ openshift.common.dns_domain }}/127.0.0.1#{{ r_openshift_node_dnsmasq_port }} diff --git a/roles/openshift_node_dnsmasq/templates/origin-dns.conf.j2 b/roles/openshift_node_dnsmasq/templates/origin-dns.conf.j2 index 8bae9aaac..eac18cb4b 100644 --- a/roles/openshift_node_dnsmasq/templates/origin-dns.conf.j2 +++ b/roles/openshift_node_dnsmasq/templates/origin-dns.conf.j2 @@ -1,5 +1,5 @@ no-resolv domain-needed -server=/{{ openshift.common.dns_domain }}/{{ openshift.common.kube_svc_ip }} no-negcache max-cache-ttl=1 +enable-dbus diff --git a/roles/openshift_node_upgrade/README.md b/roles/openshift_node_upgrade/README.md index 66bce38ec..8b388cc6a 100644 --- a/roles/openshift_node_upgrade/README.md +++ b/roles/openshift_node_upgrade/README.md @@ -88,6 +88,7 @@ Including an example of how to use your role (for instance, with variables passe roles: - openshift_facts - docker + - openshift_node_dnsmasq - openshift_node_upgrade post_tasks: diff --git a/roles/openshift_node_upgrade/defaults/main.yml b/roles/openshift_node_upgrade/defaults/main.yml new file mode 100644 index 000000000..1272c347c --- /dev/null +++ b/roles/openshift_node_upgrade/defaults/main.yml @@ -0,0 +1,2 @@ +--- +r_openshift_node_dns_port: "{{ openshift_node_dns_port | default(8054) }}" diff --git a/roles/openshift_node_upgrade/tasks/rpm_upgrade.yml b/roles/openshift_node_upgrade/tasks/rpm_upgrade.yml index 06a2d16ba..a998acf21 100644 --- a/roles/openshift_node_upgrade/tasks/rpm_upgrade.yml +++ b/roles/openshift_node_upgrade/tasks/rpm_upgrade.yml @@ -16,7 +16,7 @@ - name: Install Node service file template: dest: "/etc/systemd/system/{{ openshift.common.service_type }}-node.service" - src: "{{ openshift.common.service_type }}-node.service.j2" + src: "node.service.j2" register: l_node_unit # NOTE: This is needed to make sure we are using the correct set diff --git a/roles/openshift_node_upgrade/templates/atomic-openshift-node.service.j2 b/roles/openshift_node_upgrade/templates/atomic-openshift-node.service.j2 deleted file mode 120000 index 6041fb13a..000000000 --- a/roles/openshift_node_upgrade/templates/atomic-openshift-node.service.j2 +++ /dev/null @@ -1 +0,0 @@ -../../openshift_node/templates/atomic-openshift-node.service.j2 \ No newline at end of file diff --git a/roles/openshift_node_upgrade/templates/node.service.j2 b/roles/openshift_node_upgrade/templates/node.service.j2 new file mode 100644 index 000000000..fed8e21f5 --- /dev/null +++ b/roles/openshift_node_upgrade/templates/node.service.j2 @@ -0,0 +1,30 @@ +[Unit] +Description=OpenShift Node +After={{ openshift.docker.service_name }}.service +Wants=openvswitch.service +After=ovsdb-server.service +After=ovs-vswitchd.service +Wants={{ openshift.docker.service_name }}.service +Documentation=https://github.com/openshift/origin +Requires=dnsmasq.service +After=dnsmasq.service + +[Service] +Type=notify +EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node +Environment=GOTRACEBACK=crash +ExecStartPre=/usr/bin/cp /etc/origin/node/node-dnsmasq.conf /etc/dnsmasq.d/ +ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1#{{ r_openshift_node_dns_port}},/{{ openshift.common.dns_domain }}/127.0.0.1#{{ r_openshift_node_dns_port}} +ExecStopPost=/usr/bin/rm /etc/dnsmasq.d/node-dnsmasq.conf +ExecStopPost=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string: +ExecStart=/usr/bin/openshift start node --config=${CONFIG_FILE} $OPTIONS +LimitNOFILE=65536 +LimitCORE=infinity +WorkingDirectory=/var/lib/origin/ +SyslogIdentifier={{ openshift.common.service_type }}-node +Restart=always +RestartSec=5s +OOMScoreAdjust=-999 + +[Install] +WantedBy=multi-user.target diff --git a/roles/openshift_node_upgrade/templates/openshift.docker.node.service b/roles/openshift_node_upgrade/templates/openshift.docker.node.service index 2a099301a..9649fec38 100644 --- a/roles/openshift_node_upgrade/templates/openshift.docker.node.service +++ b/roles/openshift_node_upgrade/templates/openshift.docker.node.service @@ -6,18 +6,26 @@ PartOf={{ openshift.docker.service_name }}.service Requires={{ openshift.docker.service_name }}.service {% if openshift.common.use_openshift_sdn %} Wants=openvswitch.service +After=ovsdb-server.service +After=ovs-vswitchd.service {% endif %} Wants={{ openshift.common.service_type }}-master.service Requires={{ openshift.common.service_type }}-node-dep.service After={{ openshift.common.service_type }}-node-dep.service +Requires=dnsmasq.service +After=dnsmasq.service [Service] EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node-dep ExecStartPre=-/usr/bin/docker rm -f {{ openshift.common.service_type }}-node -ExecStart=/usr/bin/docker run --name {{ openshift.common.service_type }}-node --rm --privileged --net=host --pid=host --env-file=/etc/sysconfig/{{ openshift.common.service_type }}-node -v /:/rootfs:ro,rslave -e CONFIG_FILE=${CONFIG_FILE} -e OPTIONS=${OPTIONS} -e HOST=/rootfs -e HOST_ETC=/host-etc -v {{ openshift.common.data_dir }}:{{ openshift.common.data_dir }}{{ ':rslave' if openshift.docker.gte_1_10 | default(False) | bool else '' }} -v {{ openshift.common.config_base }}/node:{{ openshift.common.config_base }}/node {% if openshift_cloudprovider_kind | default('') != '' -%} -v {{ openshift.common.config_base }}/cloudprovider:{{ openshift.common.config_base}}/cloudprovider {% endif -%} -v /etc/localtime:/etc/localtime:ro -v /etc/machine-id:/etc/machine-id:ro -v /run:/run -v /sys:/sys:rw -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /usr/bin/docker:/usr/bin/docker:ro -v /var/lib/docker:/var/lib/docker -v /lib/modules:/lib/modules -v /etc/origin/openvswitch:/etc/openvswitch -v /etc/origin/sdn:/etc/openshift-sdn -v /var/lib/cni:/var/lib/cni -v /etc/systemd/system:/host-etc/systemd/system -v /var/log:/var/log -v /dev:/dev $DOCKER_ADDTL_BIND_MOUNTS {{ openshift.node.node_image }}:${IMAGE_VERSION} +ExecStartPre=/usr/bin/cp /etc/origin/node/node-dnsmasq.conf /etc/dnsmasq.d/ +ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1#{{ r_openshift_node_dns_port}},/{{ openshift.common.dns_domain }}/127.0.0.1#{{ r_openshift_node_dns_port}} +ExecStart=/usr/bin/docker run --name {{ openshift.common.service_type }}-node --rm --privileged --net=host --pid=host --env-file=/etc/sysconfig/{{ openshift.common.service_type }}-node -v /:/rootfs:ro,rslave -e CONFIG_FILE=${CONFIG_FILE} -e OPTIONS=${OPTIONS} -e HOST=/rootfs -e HOST_ETC=/host-etc -v {{ openshift.common.data_dir }}:{{ openshift.common.data_dir }}{{ ':rslave' if openshift.docker.gte_1_10 | default(False) | bool else '' }} -v {{ openshift.common.config_base }}/node:{{ openshift.common.config_base }}/node {% if openshift_cloudprovider_kind | default('') != '' -%} -v {{ openshift.common.config_base }}/cloudprovider:{{ openshift.common.config_base}}/cloudprovider {% endif -%} -v /etc/localtime:/etc/localtime:ro -v /etc/machine-id:/etc/machine-id:ro -v /run:/run -v /sys:/sys:rw -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /usr/bin/docker:/usr/bin/docker:ro -v /var/lib/docker:/var/lib/docker -v /lib/modules:/lib/modules -v /etc/origin/openvswitch:/etc/openvswitch -v /etc/origin/sdn:/etc/openshift-sdn -v /var/lib/cni:/var/lib/cni -v /etc/systemd/system:/host-etc/systemd/system -v /var/log:/var/log -v /dev:/dev $DOCKER_ADDTL_BIND_MOUNTS -v /etc/pki:/etc/pki:ro {{ openshift.node.node_image }}:${IMAGE_VERSION} ExecStartPost=/usr/bin/sleep 10 ExecStop=/usr/bin/docker stop {{ openshift.common.service_type }}-node +ExecStopPost=/usr/bin/rm /etc/dnsmasq.d/node-dnsmasq.conf +ExecStopPost=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string: SyslogIdentifier={{ openshift.common.service_type }}-node Restart=always RestartSec=5s diff --git a/roles/openshift_node_upgrade/templates/origin-node.service.j2 b/roles/openshift_node_upgrade/templates/origin-node.service.j2 deleted file mode 120000 index 79c45a303..000000000 --- a/roles/openshift_node_upgrade/templates/origin-node.service.j2 +++ /dev/null @@ -1 +0,0 @@ -../../openshift_node/templates/origin-node.service.j2 \ No newline at end of file diff --git a/roles/openshift_sanitize_inventory/tasks/main.yml b/roles/openshift_sanitize_inventory/tasks/main.yml index f15dc16d1..59ce505d3 100644 --- a/roles/openshift_sanitize_inventory/tasks/main.yml +++ b/roles/openshift_sanitize_inventory/tasks/main.yml @@ -46,3 +46,7 @@ msg: |- openshift_release is "{{ openshift_release }}" which is not a valid version string. Please set it to a version string like "3.4". + +- include: unsupported.yml + when: + - not openshift_enable_unsupported_configurations | default(false) | bool diff --git a/roles/openshift_sanitize_inventory/tasks/unsupported.yml b/roles/openshift_sanitize_inventory/tasks/unsupported.yml new file mode 100644 index 000000000..24e44ea85 --- /dev/null +++ b/roles/openshift_sanitize_inventory/tasks/unsupported.yml @@ -0,0 +1,12 @@ +--- +# This task list checks for unsupported configurations. Values here should yield +# a partially functioning cluster but would not be supported for production use. + +- name: Ensure that openshift_use_dnsmasq is true + when: + - not openshift_use_dnsmasq | default(true) | bool + fail: + msg: |- + Starting in 3.6 openshift_use_dnsmasq must be true or critical features + will not function. This also means that NetworkManager must be installed + enabled and responsible for management of the primary interface. -- cgit v1.2.3 From d9c30f08cebe462a62e9c5131b6e3cec6b01e80a Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 30 Jun 2017 08:06:17 -0400 Subject: Use default ports for dnsmasq and node dns --- roles/openshift_node/defaults/main.yml | 1 - roles/openshift_node/meta/main.yml | 1 - roles/openshift_node/templates/node.service.j2 | 2 +- roles/openshift_node/templates/node.yaml.v1.j2 | 2 +- roles/openshift_node/templates/openshift.docker.node.service | 2 +- roles/openshift_node_dnsmasq/defaults/main.yml | 1 - roles/openshift_node_dnsmasq/templates/node-dnsmasq.conf.j2 | 4 ++-- roles/openshift_node_dnsmasq/templates/origin-dns.conf.j2 | 2 ++ roles/openshift_node_upgrade/defaults/main.yml | 1 - roles/openshift_node_upgrade/templates/node.service.j2 | 2 +- roles/openshift_node_upgrade/templates/openshift.docker.node.service | 2 +- 11 files changed, 9 insertions(+), 11 deletions(-) diff --git a/roles/openshift_node/defaults/main.yml b/roles/openshift_node/defaults/main.yml index 80049fdd1..5904ca9bc 100644 --- a/roles/openshift_node/defaults/main.yml +++ b/roles/openshift_node/defaults/main.yml @@ -12,4 +12,3 @@ os_firewall_allow: - service: Calico BGP Port port: 179/tcp when: openshift.common.use_calico | bool -r_openshift_node_dns_port: "{{ openshift_node_dns_port | default(8054) }}" diff --git a/roles/openshift_node/meta/main.yml b/roles/openshift_node/meta/main.yml index 508bb751d..3b7e8126a 100644 --- a/roles/openshift_node/meta/main.yml +++ b/roles/openshift_node/meta/main.yml @@ -45,5 +45,4 @@ dependencies: port: "{{ openshift_node_port_range | default('') }}/udp" when: openshift_node_port_range is defined - role: openshift_node_dnsmasq - r_openshift_node_dnsmasq_port: "{{ r_openshift_node_dns_port }}" when: openshift.common.use_dnsmasq | bool diff --git a/roles/openshift_node/templates/node.service.j2 b/roles/openshift_node/templates/node.service.j2 index fed8e21f5..d4f0b7762 100644 --- a/roles/openshift_node/templates/node.service.j2 +++ b/roles/openshift_node/templates/node.service.j2 @@ -14,7 +14,7 @@ Type=notify EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node Environment=GOTRACEBACK=crash ExecStartPre=/usr/bin/cp /etc/origin/node/node-dnsmasq.conf /etc/dnsmasq.d/ -ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1#{{ r_openshift_node_dns_port}},/{{ openshift.common.dns_domain }}/127.0.0.1#{{ r_openshift_node_dns_port}} +ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1,/{{ openshift.common.dns_domain }}/127.0.0.1 ExecStopPost=/usr/bin/rm /etc/dnsmasq.d/node-dnsmasq.conf ExecStopPost=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string: ExecStart=/usr/bin/openshift start node --config=${CONFIG_FILE} $OPTIONS diff --git a/roles/openshift_node/templates/node.yaml.v1.j2 b/roles/openshift_node/templates/node.yaml.v1.j2 index 8e6b3e070..351c8c9f6 100644 --- a/roles/openshift_node/templates/node.yaml.v1.j2 +++ b/roles/openshift_node/templates/node.yaml.v1.j2 @@ -1,7 +1,7 @@ allowDisabledDocker: false apiVersion: v1 {% if openshift.common.version_gte_3_6 %} -dnsBindAddress: 0.0.0.0:{{ r_openshift_node_dns_port }} +dnsBindAddress: 127.0.0.1:53 dnsRecursiveResolvConf: /etc/origin/node/resolv.conf {% endif %} dnsDomain: {{ openshift.common.dns_domain }} diff --git a/roles/openshift_node/templates/openshift.docker.node.service b/roles/openshift_node/templates/openshift.docker.node.service index 9649fec38..639b6f6c8 100644 --- a/roles/openshift_node/templates/openshift.docker.node.service +++ b/roles/openshift_node/templates/openshift.docker.node.service @@ -20,7 +20,7 @@ EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node-dep ExecStartPre=-/usr/bin/docker rm -f {{ openshift.common.service_type }}-node ExecStartPre=/usr/bin/cp /etc/origin/node/node-dnsmasq.conf /etc/dnsmasq.d/ -ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1#{{ r_openshift_node_dns_port}},/{{ openshift.common.dns_domain }}/127.0.0.1#{{ r_openshift_node_dns_port}} +ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1,/{{ openshift.common.dns_domain }}/127.0.0.1 ExecStart=/usr/bin/docker run --name {{ openshift.common.service_type }}-node --rm --privileged --net=host --pid=host --env-file=/etc/sysconfig/{{ openshift.common.service_type }}-node -v /:/rootfs:ro,rslave -e CONFIG_FILE=${CONFIG_FILE} -e OPTIONS=${OPTIONS} -e HOST=/rootfs -e HOST_ETC=/host-etc -v {{ openshift.common.data_dir }}:{{ openshift.common.data_dir }}{{ ':rslave' if openshift.docker.gte_1_10 | default(False) | bool else '' }} -v {{ openshift.common.config_base }}/node:{{ openshift.common.config_base }}/node {% if openshift_cloudprovider_kind | default('') != '' -%} -v {{ openshift.common.config_base }}/cloudprovider:{{ openshift.common.config_base}}/cloudprovider {% endif -%} -v /etc/localtime:/etc/localtime:ro -v /etc/machine-id:/etc/machine-id:ro -v /run:/run -v /sys:/sys:rw -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /usr/bin/docker:/usr/bin/docker:ro -v /var/lib/docker:/var/lib/docker -v /lib/modules:/lib/modules -v /etc/origin/openvswitch:/etc/openvswitch -v /etc/origin/sdn:/etc/openshift-sdn -v /var/lib/cni:/var/lib/cni -v /etc/systemd/system:/host-etc/systemd/system -v /var/log:/var/log -v /dev:/dev $DOCKER_ADDTL_BIND_MOUNTS -v /etc/pki:/etc/pki:ro {{ openshift.node.node_image }}:${IMAGE_VERSION} ExecStartPost=/usr/bin/sleep 10 ExecStop=/usr/bin/docker stop {{ openshift.common.service_type }}-node diff --git a/roles/openshift_node_dnsmasq/defaults/main.yml b/roles/openshift_node_dnsmasq/defaults/main.yml index 06b2c4123..ed97d539c 100644 --- a/roles/openshift_node_dnsmasq/defaults/main.yml +++ b/roles/openshift_node_dnsmasq/defaults/main.yml @@ -1,2 +1 @@ --- -r_openshift_node_dnsmasq_port: 8054 diff --git a/roles/openshift_node_dnsmasq/templates/node-dnsmasq.conf.j2 b/roles/openshift_node_dnsmasq/templates/node-dnsmasq.conf.j2 index 4377403df..3caa3bd4a 100644 --- a/roles/openshift_node_dnsmasq/templates/node-dnsmasq.conf.j2 +++ b/roles/openshift_node_dnsmasq/templates/node-dnsmasq.conf.j2 @@ -1,2 +1,2 @@ -server=/in-addr.arpa/127.0.0.1#{{ r_openshift_node_dnsmasq_port }} -server=/{{ openshift.common.dns_domain }}/127.0.0.1#{{ r_openshift_node_dnsmasq_port }} +server=/in-addr.arpa/127.0.0.1 +server=/{{ openshift.common.dns_domain }}/127.0.0.1 diff --git a/roles/openshift_node_dnsmasq/templates/origin-dns.conf.j2 b/roles/openshift_node_dnsmasq/templates/origin-dns.conf.j2 index eac18cb4b..779b4d2f5 100644 --- a/roles/openshift_node_dnsmasq/templates/origin-dns.conf.j2 +++ b/roles/openshift_node_dnsmasq/templates/origin-dns.conf.j2 @@ -3,3 +3,5 @@ domain-needed no-negcache max-cache-ttl=1 enable-dbus +bind-interfaces +listen-address={{ ansible_default_ipv4.address }} diff --git a/roles/openshift_node_upgrade/defaults/main.yml b/roles/openshift_node_upgrade/defaults/main.yml index 1272c347c..ed97d539c 100644 --- a/roles/openshift_node_upgrade/defaults/main.yml +++ b/roles/openshift_node_upgrade/defaults/main.yml @@ -1,2 +1 @@ --- -r_openshift_node_dns_port: "{{ openshift_node_dns_port | default(8054) }}" diff --git a/roles/openshift_node_upgrade/templates/node.service.j2 b/roles/openshift_node_upgrade/templates/node.service.j2 index fed8e21f5..d4f0b7762 100644 --- a/roles/openshift_node_upgrade/templates/node.service.j2 +++ b/roles/openshift_node_upgrade/templates/node.service.j2 @@ -14,7 +14,7 @@ Type=notify EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node Environment=GOTRACEBACK=crash ExecStartPre=/usr/bin/cp /etc/origin/node/node-dnsmasq.conf /etc/dnsmasq.d/ -ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1#{{ r_openshift_node_dns_port}},/{{ openshift.common.dns_domain }}/127.0.0.1#{{ r_openshift_node_dns_port}} +ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1,/{{ openshift.common.dns_domain }}/127.0.0.1 ExecStopPost=/usr/bin/rm /etc/dnsmasq.d/node-dnsmasq.conf ExecStopPost=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string: ExecStart=/usr/bin/openshift start node --config=${CONFIG_FILE} $OPTIONS diff --git a/roles/openshift_node_upgrade/templates/openshift.docker.node.service b/roles/openshift_node_upgrade/templates/openshift.docker.node.service index 9649fec38..639b6f6c8 100644 --- a/roles/openshift_node_upgrade/templates/openshift.docker.node.service +++ b/roles/openshift_node_upgrade/templates/openshift.docker.node.service @@ -20,7 +20,7 @@ EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node-dep ExecStartPre=-/usr/bin/docker rm -f {{ openshift.common.service_type }}-node ExecStartPre=/usr/bin/cp /etc/origin/node/node-dnsmasq.conf /etc/dnsmasq.d/ -ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1#{{ r_openshift_node_dns_port}},/{{ openshift.common.dns_domain }}/127.0.0.1#{{ r_openshift_node_dns_port}} +ExecStartPre=/usr/bin/dbus-send --system --dest=uk.org.thekelleys.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers array:string:/in-addr.arpa/127.0.0.1,/{{ openshift.common.dns_domain }}/127.0.0.1 ExecStart=/usr/bin/docker run --name {{ openshift.common.service_type }}-node --rm --privileged --net=host --pid=host --env-file=/etc/sysconfig/{{ openshift.common.service_type }}-node -v /:/rootfs:ro,rslave -e CONFIG_FILE=${CONFIG_FILE} -e OPTIONS=${OPTIONS} -e HOST=/rootfs -e HOST_ETC=/host-etc -v {{ openshift.common.data_dir }}:{{ openshift.common.data_dir }}{{ ':rslave' if openshift.docker.gte_1_10 | default(False) | bool else '' }} -v {{ openshift.common.config_base }}/node:{{ openshift.common.config_base }}/node {% if openshift_cloudprovider_kind | default('') != '' -%} -v {{ openshift.common.config_base }}/cloudprovider:{{ openshift.common.config_base}}/cloudprovider {% endif -%} -v /etc/localtime:/etc/localtime:ro -v /etc/machine-id:/etc/machine-id:ro -v /run:/run -v /sys:/sys:rw -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /usr/bin/docker:/usr/bin/docker:ro -v /var/lib/docker:/var/lib/docker -v /lib/modules:/lib/modules -v /etc/origin/openvswitch:/etc/openvswitch -v /etc/origin/sdn:/etc/openshift-sdn -v /var/lib/cni:/var/lib/cni -v /etc/systemd/system:/host-etc/systemd/system -v /var/log:/var/log -v /dev:/dev $DOCKER_ADDTL_BIND_MOUNTS -v /etc/pki:/etc/pki:ro {{ openshift.node.node_image }}:${IMAGE_VERSION} ExecStartPost=/usr/bin/sleep 10 ExecStop=/usr/bin/docker stop {{ openshift.common.service_type }}-node -- cgit v1.2.3 From e20748de5b679c8a5747dd94b6603a97a64450ae Mon Sep 17 00:00:00 2001 From: Steve Teuber Date: Wed, 17 May 2017 07:53:12 +0200 Subject: Prevent the script to use default route ip as upstream nameserver. --- roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh b/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh index 2c466e4f0..924226d09 100755 --- a/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh +++ b/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh @@ -45,7 +45,8 @@ if [[ $2 =~ ^(up|dhcp4-change|dhcp6-change)$ ]]; then def_route_int=$(/sbin/ip route get to ${def_route} | awk '{print $3}') def_route_ip=$(/sbin/ip route get to ${def_route} | awk '{print $5}') if [[ ${DEVICE_IFACE} == ${def_route_int} && \ - -n "${IP4_NAMESERVERS}" ]]; then + -n "${IP4_NAMESERVERS}" && \ + "${IP4_NAMESERVERS}" != "${def_route_ip}" ]]; then if [ ! -f /etc/dnsmasq.d/origin-dns.conf ]; then cat << EOF > /etc/dnsmasq.d/origin-dns.conf no-resolv -- cgit v1.2.3 From 841cefdae64bf6e01ff85b3fcec3a12e6aeabf7e Mon Sep 17 00:00:00 2001 From: Scott Dodson Date: Fri, 30 Jun 2017 17:16:18 -0400 Subject: Fix upgrade --- roles/openshift_node_upgrade/tasks/main.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/roles/openshift_node_upgrade/tasks/main.yml b/roles/openshift_node_upgrade/tasks/main.yml index 8eaa68cc9..9807aa9a3 100644 --- a/roles/openshift_node_upgrade/tasks/main.yml +++ b/roles/openshift_node_upgrade/tasks/main.yml @@ -133,6 +133,17 @@ - ansible_selinux is defined - ansible_selinux.status == 'enabled' +- name: Apply 3.6 dns config changes + yedit: + src: /etc/origin/node/node-config.yaml + key: "{{ item.key }}" + value: "{{ item.value }}" + with_items: + - key: "dnsBindAddress" + value: "127.0.0.1:53" + - key: "dnsRecursiveResolvConf" + value: "/etc/origin/node/resolv.conf" + # Restart all services - include: restart.yml -- cgit v1.2.3 From d87dfaa027102ccc9c2dd7fc51d24574cea57d17 Mon Sep 17 00:00:00 2001 From: Jenkins CD Merge Bot Date: Sun, 2 Jul 2017 01:33:04 -0400 Subject: Automatic commit of package [openshift-ansible] release [3.6.131-1]. Created by command: /usr/bin/tito tag --accept-auto-changelog --use-version=3.6.131 --- .tito/packages/openshift-ansible | 2 +- openshift-ansible.spec | 41 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/.tito/packages/openshift-ansible b/.tito/packages/openshift-ansible index b331c69ef..d7e09894a 100644 --- a/.tito/packages/openshift-ansible +++ b/.tito/packages/openshift-ansible @@ -1 +1 @@ -3.6.129-1 ./ +3.6.131-1 ./ diff --git a/openshift-ansible.spec b/openshift-ansible.spec index 3e999a774..4a0c9572f 100644 --- a/openshift-ansible.spec +++ b/openshift-ansible.spec @@ -9,7 +9,7 @@ %global __requires_exclude ^/usr/bin/ansible-playbook$ Name: openshift-ansible -Version: 3.6.129 +Version: 3.6.131 Release: 1%{?dist} Summary: Openshift and Atomic Enterprise Ansible License: ASL 2.0 @@ -280,6 +280,45 @@ Atomic OpenShift Utilities includes %changelog +* Sun Jul 02 2017 Jenkins CD Merge Bot 3.6.131-1 +- Fix upgrade (sdodson@redhat.com) +- Prevent the script to use default route ip as upstream nameserver. + (steveteuber@users.noreply.github.com) +- Use default ports for dnsmasq and node dns (sdodson@redhat.com) +- Run dns on the node and use that for dnsmasq (sdodson@redhat.com) +- Using ca-bundle.crt to connect to local etcd if master.etcd-ca.crt DNE + (ewolinet@redhat.com) +- Set OPENSHIFT_DEFAULT_REGISTRY in registry dc. (abutcher@redhat.com) +- Updating to use openshift.master.etcd_hosts for etcd servers for apiserver + (ewolinet@redhat.com) +- Update v1.4 image streams and templates (sdodson@redhat.com) +- xPaaS v1.4.0 for v3.4 (sdodson@redhat.com) +- Sync latest image streams and templates for v1.5 (sdodson@redhat.com) +- xPaaS v1.4.0 for v3.5 (sdodson@redhat.com) +- Update latest image streams for v3.6 (sdodson@redhat.com) +- Bump xPaas v1.4.0 for v3.6 (sdodson@redhat.com) +- docker_image_availability: fix containerized etcd (lmeyer@redhat.com) +- evalute etcd backup directory name only once (jchaloup@redhat.com) +- run etcd_container with type:spc_t label (jchaloup@redhat.com) +- Fixing ops storage options being passed to openshift_logging_elasticsearch + role fixing default ops pv selector (ewolinet@redhat.com) +- Adding labels for elasticsearch and kibana services (ewolinet@redhat.com) +- Add a retry to the docker restart handler (sdodson@redhat.com) +- docker_storage check: make vgs return sane output (lmeyer@redhat.com) +- Capture exceptions when resolving available checks (rhcarvalho@gmail.com) +- PAPR: customize disk space requirements (rhcarvalho@gmail.com) +- Enable disk check on containerized installs (rhcarvalho@gmail.com) +- Add module docstring (rhcarvalho@gmail.com) +- Add suggestion to check disk space in any path (rhcarvalho@gmail.com) +- Require at least 1GB in /usr/bin/local and tempdir (rhcarvalho@gmail.com) +- Refactor DiskAvailability for arbitrary paths (rhcarvalho@gmail.com) +- Adding some more sections to additional considerations, being less rigid on + large roles for composing -- can also be a playbook (ewolinet@redhat.com) +- Updating snippet contents, formatting and providing urls + (ewolinet@redhat.com) +- Update snippets and add bullet point on role dependency (ewolinet@redhat.com) +- Creating initial proposal doc for review (ewolinet@redhat.com) + * Fri Jun 30 2017 Jenkins CD Merge Bot 3.6.129-1 - Fix generate role binding destination for the HOSA service account (steveteuber@users.noreply.github.com) -- cgit v1.2.3 From 0d0f54af3a02cd0e228210dfae95806d4e644c3b Mon Sep 17 00:00:00 2001 From: Jenkins CD Merge Bot Date: Mon, 3 Jul 2017 01:38:27 -0400 Subject: Automatic commit of package [openshift-ansible] release [3.6.132-1]. Created by command: /usr/bin/tito tag --accept-auto-changelog --use-version=3.6.132 --- .tito/packages/openshift-ansible | 2 +- openshift-ansible.spec | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.tito/packages/openshift-ansible b/.tito/packages/openshift-ansible index d7e09894a..8b1359b22 100644 --- a/.tito/packages/openshift-ansible +++ b/.tito/packages/openshift-ansible @@ -1 +1 @@ -3.6.131-1 ./ +3.6.132-1 ./ diff --git a/openshift-ansible.spec b/openshift-ansible.spec index 4a0c9572f..ed0b5ca79 100644 --- a/openshift-ansible.spec +++ b/openshift-ansible.spec @@ -9,7 +9,7 @@ %global __requires_exclude ^/usr/bin/ansible-playbook$ Name: openshift-ansible -Version: 3.6.131 +Version: 3.6.132 Release: 1%{?dist} Summary: Openshift and Atomic Enterprise Ansible License: ASL 2.0 @@ -280,6 +280,9 @@ Atomic OpenShift Utilities includes %changelog +* Mon Jul 03 2017 Jenkins CD Merge Bot 3.6.132-1 +- + * Sun Jul 02 2017 Jenkins CD Merge Bot 3.6.131-1 - Fix upgrade (sdodson@redhat.com) - Prevent the script to use default route ip as upstream nameserver. -- cgit v1.2.3