diff options
Diffstat (limited to 'roles')
-rw-r--r-- | roles/lib_zabbix/library/zbx_itservice.py | 263 | ||||
-rw-r--r-- | roles/lib_zabbix/library/zbx_trigger.py | 5 | ||||
-rwxr-xr-x | roles/openshift_examples/examples-sync.sh | 7 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/image-streams/image-streams-centos7.json | 207 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/image-streams/image-streams-rhel7.json | 196 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-streams/jboss-image-streams.json | 63 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/amq62-basic.json | 325 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/amq62-persistent-ssl.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/amq6-persistent.json) | 160 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/amq62-persistent.json | 343 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/amq62-ssl.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/amq6.json) | 171 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/eap64-amq-persistent-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/eap6-amq-persistent-sti.json) | 223 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/eap64-amq-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/eap6-amq-sti.json) | 216 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/eap64-basic-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/eap6-basic-sti.json) | 133 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/eap64-https-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/eap6-https-sti.json) | 153 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/eap64-mongodb-persistent-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/eap6-mongodb-persistent-sti.json) | 208 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/eap64-mongodb-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/eap6-mongodb-sti.json) | 191 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/eap64-mysql-persistent-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/eap6-mysql-persistent-sti.json) | 201 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/eap64-mysql-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/eap6-mysql-sti.json) | 194 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/eap64-postgresql-persistent-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/eap6-postgresql-persistent-sti.json) | 200 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/eap64-postgresql-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/eap6-postgresql-sti.json) | 185 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-basic-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-basic-sti.json) | 90 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-https-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-https-sti.json) | 110 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mongodb-persistent-sti.json) | 168 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mongodb-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mongodb-persistent-sti.json) | 188 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mysql-persistent-sti.json) | 171 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mysql-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mysql-persistent-sti.json) | 191 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-postgresql-persistent-sti.json) | 162 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-postgresql-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-postgresql-sti.json) | 145 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-basic-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-basic-sti.json) | 90 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-https-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-https-sti.json) | 110 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mongodb-sti.json) | 191 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mongodb-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mongodb-sti.json) | 151 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mysql-sti.json) | 194 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mysql-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mysql-sti.json) | 154 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-postgresql-sti.json) | 185 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-postgresql-s2i.json (renamed from roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-postgresql-persistent-sti.json) | 180 | ||||
-rw-r--r-- | roles/openshift_examples/tasks/main.yml | 50 | ||||
-rwxr-xr-x | roles/openshift_facts/library/openshift_facts.py | 71 | ||||
-rw-r--r-- | roles/os_zabbix/tasks/main.yml | 9 | ||||
-rw-r--r-- | roles/os_zabbix/vars/template_aws.yml | 25 |
40 files changed, 4249 insertions, 2030 deletions
diff --git a/roles/lib_zabbix/library/zbx_itservice.py b/roles/lib_zabbix/library/zbx_itservice.py new file mode 100644 index 000000000..a5ee97e15 --- /dev/null +++ b/roles/lib_zabbix/library/zbx_itservice.py @@ -0,0 +1,263 @@ +#!/usr/bin/env python +''' + Ansible module for zabbix itservices +''' +# vim: expandtab:tabstop=4:shiftwidth=4 +# +# Zabbix itservice ansible module +# +# +# Copyright 2015 Red Hat Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# This is in place because each module looks similar to each other. +# These need duplicate code as their behavior is very similar +# but different for each zabbix class. +# pylint: disable=duplicate-code + +# pylint: disable=import-error +from openshift_tools.monitoring.zbxapi import ZabbixAPI, ZabbixConnection + +def exists(content, key='result'): + ''' Check if key exists in content or the size of content[key] > 0 + ''' + if not content.has_key(key): + return False + + if not content[key]: + return False + + return True + +def get_parent(dependencies): + '''Put dependencies into the proper update format''' + rval = None + for dep in dependencies: + if dep['relationship'] == 'parent': + return dep + return rval + +def format_dependencies(dependencies): + '''Put dependencies into the proper update format''' + rval = [] + for dep in dependencies: + rval.append({'dependsOnServiceid': dep['serviceid'], + 'soft': get_dependency_type(dep['dep_type']), + }) + + return rval + +def get_dependency_type(dep_type): + '''Determine the dependency type''' + rval = 0 + if 'soft' == dep_type: + rval = 1 + + return rval + +def get_service_id_by_name(zapi, dependencies): + '''Fetch the service id for an itservice''' + deps = [] + for dep in dependencies: + if dep['name'] == 'root': + deps.append(dep) + continue + + content = zapi.get_content('service', + 'get', + {'filter': {'name': dep['name']}, + 'selectDependencies': 'extend', + }) + if content.has_key('result') and content['result']: + dep['serviceid'] = content['result'][0]['serviceid'] + deps.append(dep) + + return deps + +def add_dependencies(zapi, service_name, dependencies): + '''Fetch the service id for an itservice + + Add a dependency on the parent for this current service item. + ''' + + results = get_service_id_by_name(zapi, [{'name': service_name}]) + + content = {} + for dep in dependencies: + content = zapi.get_content('service', + 'adddependencies', + {'serviceid': results[0]['serviceid'], + 'dependsOnServiceid': dep['serviceid'], + 'soft': get_dependency_type(dep['dep_type']), + }) + if content.has_key('result') and content['result']: + continue + else: + break + + return content + +def get_show_sla(inc_sla): + ''' Determine the showsla paramter + ''' + rval = 1 + if 'do not cacluate' in inc_sla: + rval = 0 + return rval + +def get_algorithm(inc_algorithm_str): + ''' + Determine which type algorithm + ''' + rval = 0 + if 'at least one' in inc_algorithm_str: + rval = 1 + elif 'all' in inc_algorithm_str: + rval = 2 + + return rval + +# The branches are needed for CRUD and error handling +# pylint: disable=too-many-branches +def main(): + ''' + ansible zabbix module for zbx_itservice + ''' + + module = AnsibleModule( + argument_spec=dict( + zbx_server=dict(default='https://localhost/zabbix/api_jsonrpc.php', type='str'), + zbx_user=dict(default=os.environ.get('ZABBIX_USER', None), type='str'), + zbx_password=dict(default=os.environ.get('ZABBIX_PASSWORD', None), type='str'), + zbx_debug=dict(default=False, type='bool'), + name=dict(default=None, type='str'), + algorithm=dict(default='do not calculate', choices=['do not calculate', 'at least one', 'all'], type='str'), + show_sla=dict(default='calculate', choices=['do not calculate', 'calculate'], type='str'), + good_sla=dict(default='99.9', type='float'), + sort_order=dict(default=1, type='int'), + state=dict(default='present', type='str'), + trigger_id=dict(default=None, type='int'), + dependencies=dict(default=[], type='list'), + dep_type=dict(default='hard', choices=['hard', 'soft'], type='str'), + ), + #supports_check_mode=True + ) + + zapi = ZabbixAPI(ZabbixConnection(module.params['zbx_server'], + module.params['zbx_user'], + module.params['zbx_password'], + module.params['zbx_debug'])) + + #Set the instance and the template for the rest of the calls + zbx_class_name = 'service' + state = module.params['state'] + + content = zapi.get_content(zbx_class_name, + 'get', + {'filter': {'name': module.params['name']}, + 'selectDependencies': 'extend', + }) + + #******# + # GET + #******# + if state == 'list': + module.exit_json(changed=False, results=content['result'], state="list") + + #******# + # DELETE + #******# + if state == 'absent': + if not exists(content): + module.exit_json(changed=False, state="absent") + + content = zapi.get_content(zbx_class_name, 'delete', [content['result'][0]['serviceid']]) + module.exit_json(changed=True, results=content['result'], state="absent") + + # Create and Update + if state == 'present': + + dependencies = get_service_id_by_name(zapi, module.params['dependencies']) + params = {'name': module.params['name'], + 'algorithm': get_algorithm(module.params['algorithm']), + 'showsla': get_show_sla(module.params['show_sla']), + 'goodsla': module.params['good_sla'], + 'sortorder': module.params['sort_order'], + 'triggerid': module.params['trigger_id'] + } + + # Remove any None valued params + _ = [params.pop(key, None) for key in params.keys() if params[key] is None] + + #******# + # CREATE + #******# + if not exists(content): + content = zapi.get_content(zbx_class_name, 'create', params) + + if content.has_key('error'): + module.exit_json(failed=True, changed=True, results=content['error'], state="present") + + if dependencies: + content = add_dependencies(zapi, module.params['name'], dependencies) + + if content.has_key('error'): + module.exit_json(failed=True, changed=True, results=content['error'], state="present") + + module.exit_json(changed=True, results=content['result'], state='present') + + + ######## + # UPDATE + ######## + params['dependencies'] = dependencies + differences = {} + zab_results = content['result'][0] + for key, value in params.items(): + + if key == 'goodsla': + if float(value) != float(zab_results[key]): + differences[key] = value + + elif key == 'dependencies': + zab_dep_ids = [item['serviceid'] for item in zab_results[key]] + user_dep_ids = [item['serviceid'] for item in dependencies] + if set(zab_dep_ids) != set(user_dep_ids): + differences[key] = format_dependencies(dependencies) + + elif zab_results[key] != value and zab_results[key] != str(value): + differences[key] = value + + if not differences: + module.exit_json(changed=False, results=zab_results, state="present") + + differences['serviceid'] = zab_results['serviceid'] + content = zapi.get_content(zbx_class_name, 'update', differences) + + if content.has_key('error'): + module.exit_json(failed=True, changed=False, results=content['error'], state="present") + + module.exit_json(changed=True, results=content['result'], state="present") + + module.exit_json(failed=True, + changed=False, + results='Unknown state passed. %s' % state, + state="unknown") + +# pylint: disable=redefined-builtin, unused-wildcard-import, wildcard-import, locally-disabled +# import module snippets. This are required +from ansible.module_utils.basic import * + +main() diff --git a/roles/lib_zabbix/library/zbx_trigger.py b/roles/lib_zabbix/library/zbx_trigger.py index ab7731faa..b5faefa70 100644 --- a/roles/lib_zabbix/library/zbx_trigger.py +++ b/roles/lib_zabbix/library/zbx_trigger.py @@ -136,6 +136,8 @@ def main(): status=dict(default=None, type='str'), state=dict(default='present', type='str'), template_name=dict(default=None, type='str'), + hostgroup_name=dict(default=None, type='str'), + query_type=dict(default='filter', choices=['filter', 'search'], type='str'), ), #supports_check_mode=True ) @@ -157,10 +159,11 @@ def main(): content = zapi.get_content(zbx_class_name, 'get', - {'filter': {'description': tname}, + {module.params['query_type']: {'description': tname}, 'expandExpression': True, 'selectDependencies': 'triggerid', 'templateids': templateid, + 'group': module.params['hostgroup_name'], }) # Get diff --git a/roles/openshift_examples/examples-sync.sh b/roles/openshift_examples/examples-sync.sh index 3fda86907..a261a6ddd 100755 --- a/roles/openshift_examples/examples-sync.sh +++ b/roles/openshift_examples/examples-sync.sh @@ -5,6 +5,7 @@ # # This script should be run from openshift-ansible/roles/openshift_examples +XPAAS_VERSION=ose-v1.1.0 EXAMPLES_BASE=$(pwd)/files/examples find files/examples -name '*.json' -delete find files/examples -name '*.yaml' -delete @@ -17,7 +18,7 @@ wget https://github.com/openshift/rails-ex/archive/master.zip -O rails-ex-master wget https://github.com/openshift/nodejs-ex/archive/master.zip -O nodejs-ex-master.zip wget https://github.com/openshift/dancer-ex/archive/master.zip -O dancer-ex-master.zip wget https://github.com/openshift/cakephp-ex/archive/master.zip -O cakephp-ex-master.zip -wget https://github.com/jboss-openshift/application-templates/archive/ose-v1.0.2.zip -O application-templates-master.zip +wget https://github.com/jboss-openshift/application-templates/archive/${XPAAS_VERSION}.zip -O application-templates-master.zip unzip origin-master.zip unzip django-ex-master.zip unzip rails-ex-master.zip @@ -33,8 +34,8 @@ cp rails-ex-master/openshift/templates/* ${EXAMPLES_BASE}/quickstart-templates/ cp nodejs-ex-master/openshift/templates/* ${EXAMPLES_BASE}/quickstart-templates/ cp dancer-ex-master/openshift/templates/* ${EXAMPLES_BASE}/quickstart-templates/ cp cakephp-ex-master/openshift/templates/* ${EXAMPLES_BASE}/quickstart-templates/ -mv application-templates-master/jboss-image-streams.json ${EXAMPLES_BASE}/xpaas-streams/ -find application-templates-master/ -name '*.json' ! -wholename '*secret*' -exec mv {} ${EXAMPLES_BASE}/xpaas-templates/ \; +mv application-templates-${XPAAS_VERSION}/jboss-image-streams.json ${EXAMPLES_BASE}/xpaas-streams/ +find application-templates-${XPAAS_VERSION}/ -name '*.json' ! -wholename '*secret*' -exec mv {} ${EXAMPLES_BASE}/xpaas-templates/ \; wget https://raw.githubusercontent.com/openshift/origin-metrics/master/metrics.yaml -O ${EXAMPLES_BASE}/infrastructure-templates/origin/metrics-deployer.yaml cp ${EXAMPLES_BASE}/infrastructure-templates/origin/metrics-*.yaml ${EXAMPLES_BASE}/infrastructure-templates/enterprise/ diff --git a/roles/openshift_examples/files/examples/image-streams/image-streams-centos7.json b/roles/openshift_examples/files/examples/image-streams/image-streams-centos7.json index 268d680f4..1a78b1279 100644 --- a/roles/openshift_examples/files/examples/image-streams/image-streams-centos7.json +++ b/roles/openshift_examples/files/examples/image-streams/image-streams-centos7.json @@ -11,10 +11,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "openshift/ruby-20-centos7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "2.0" + } }, { "name": "2.0", @@ -27,8 +30,23 @@ "sampleRepo": "https://github.com/openshift/ruby-ex.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "openshift/ruby-20-centos7:latest" + } + }, + { + "name": "2.2", + "annotations": { + "description": "Build and run Ruby 2.2 applications", + "iconClass": "icon-ruby", + "tags": "builder,ruby", + "supports": "ruby:2.2,ruby", + "version": "2.2", + "sampleRepo": "https://github.com/openshift/ruby-ex.git" + }, + "from": { + "Kind": "DockerImage", + "Name": "centos/ruby-22-centos7:latest" } } ] @@ -42,10 +60,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "openshift/nodejs-010-centos7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "0.10" + } }, { "name": "0.10", @@ -58,8 +79,8 @@ "sampleRepo": "https://github.com/openshift/nodejs-ex.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "openshift/nodejs-010-centos7:latest" } } ] @@ -73,10 +94,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "openshift/perl-516-centos7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "5.16" + } }, { "name": "5.16", @@ -89,9 +113,25 @@ "sampleRepo": "https://github.com/openshift/dancer-ex.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "openshift/perl-516-centos7:latest" } + }, + { + "name": "5.20", + "annotations": { + "description": "Build and run Perl 5.20 applications", + "iconClass": "icon-perl", + "tags": "builder,perl", + "supports":"perl:5.20,perl", + "version": "5.20", + "sampleRepo": "https://github.com/openshift/dancer-ex.git" + }, + "from": { + "Kind": "DockerImage", + "Name": "centos/perl-520-centos7:latest" + } + } ] } @@ -104,10 +144,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "openshift/php-55-centos7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "5.5" + } }, { "name": "5.5", @@ -120,8 +163,23 @@ "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "openshift/php-55-centos7:latest" + } + }, + { + "name": "5.6", + "annotations": { + "description": "Build and run PHP 5.6 applications", + "iconClass": "icon-php", + "tags": "builder,php", + "supports":"php:5.6,php", + "version": "5.6", + "sampleRepo": "https://github.com/openshift/cakephp-ex.git" + }, + "from": { + "Kind": "DockerImage", + "Name": "centos/php-56-centos7:latest" } } ] @@ -135,10 +193,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "openshift/python-33-centos7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "3.3" + } }, { "name": "3.3", @@ -151,8 +212,38 @@ "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "openshift/python-33-centos7:latest" + } + }, + { + "name": "2.7", + "annotations": { + "description": "Build and run Python 2.7 applications", + "iconClass": "icon-python", + "tags": "builder,python", + "supports":"python:2.7,python", + "version": "2.7", + "sampleRepo": "https://github.com/openshift/django-ex.git" + }, + "from": { + "Kind": "DockerImage", + "Name": "centos/python-27-centos7:latest" + } + }, + { + "name": "3.4", + "annotations": { + "description": "Build and run Python 3.4 applications", + "iconClass": "icon-python", + "tags": "builder,python", + "supports":"python:3.4,python", + "version": "3.4", + "sampleRepo": "https://github.com/openshift/django-ex.git" + }, + "from": { + "Kind": "DockerImage", + "Name": "centos/python-34-centos7:latest" } } ] @@ -166,10 +257,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "openshift/wildfly-81-centos7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "8.1" + } }, { "name": "8.1", @@ -182,8 +276,8 @@ "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "openshift/wildfly-81-centos7:latest" } } ] @@ -197,16 +291,26 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "openshift/mysql-55-centos7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "5.5" + } }, { "name": "5.5", "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "openshift/mysql-55-centos7:latest" + } + }, + { + "name": "5.6", + "from": { + "Kind": "DockerImage", + "Name": "centos/mysql-56-centos7:latest" } } ] @@ -220,16 +324,26 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "openshift/postgresql-92-centos7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "9.2" + } }, { "name": "9.2", "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "openshift/postgresql-92-centos7:latest" + } + }, + { + "name": "9.4", + "from": { + "Kind": "DockerImage", + "Name": "centos/postgresql-94-centos7:latest" } } ] @@ -243,16 +357,26 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "openshift/mongodb-24-centos7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "2.4" + } }, { "name": "2.4", "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "openshift/mongodb-24-centos7:latest" + } + }, + { + "name": "2.6", + "from": { + "Kind": "DockerImage", + "Name": "centos/mongodb-26-centos7:latest" } } ] @@ -266,16 +390,19 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "openshift/jenkins-1-centos7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "1" + } }, { "name": "1", "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "openshift/jenkins-1-centos7:latest" } } ] diff --git a/roles/openshift_examples/files/examples/image-streams/image-streams-rhel7.json b/roles/openshift_examples/files/examples/image-streams/image-streams-rhel7.json index aa62ebd53..d2a8cfb1d 100644 --- a/roles/openshift_examples/files/examples/image-streams/image-streams-rhel7.json +++ b/roles/openshift_examples/files/examples/image-streams/image-streams-rhel7.json @@ -11,10 +11,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/openshift3/ruby-20-rhel7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "2.0" + } }, { "name": "2.0", @@ -27,8 +30,23 @@ "sampleRepo": "https://github.com/openshift/ruby-ex.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/openshift3/ruby-20-rhel7:latest" + } + }, + { + "name": "2.2", + "annotations": { + "description": "Build and run Ruby 2.2 applications", + "iconClass": "icon-ruby", + "tags": "builder,ruby", + "supports": "ruby:2.2,ruby", + "version": "2.2", + "sampleRepo": "https://github.com/openshift/ruby-ex.git" + }, + "from": { + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/rhscl/ruby-22-rhel7:latest" } } ] @@ -42,10 +60,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/openshift3/nodejs-010-rhel7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "0.10" + } }, { "name": "0.10", @@ -58,8 +79,8 @@ "sampleRepo": "https://github.com/openshift/nodejs-ex.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/openshift3/nodejs-010-rhel7:latest" } } ] @@ -73,10 +94,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/openshift3/perl-516-rhel7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "5.16" + } }, { "name": "5.16", @@ -89,9 +113,25 @@ "sampleRepo": "https://github.com/openshift/dancer-ex.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/openshift3/perl-516-rhel7:latest" + } + }, + { + "name": "5.20", + "annotations": { + "description": "Build and run Perl 5.20 applications", + "iconClass": "icon-perl", + "tags": "builder,perl", + "supports":"perl:5.20,perl", + "version": "5.20", + "sampleRepo": "https://github.com/openshift/dancer-ex.git" + }, + "from": { + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/rhscl/perl-520-rhel7:latest" } + } ] } @@ -104,10 +144,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/openshift3/php-55-rhel7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "5.5" + } }, { "name": "5.5", @@ -120,8 +163,23 @@ "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/openshift3/php-55-rhel7:latest" + } + }, + { + "name": "5.6", + "annotations": { + "description": "Build and run PHP 5.6 applications", + "iconClass": "icon-php", + "tags": "builder,php", + "supports":"php:5.6,php", + "version": "5.6", + "sampleRepo": "https://github.com/openshift/cakephp-ex.git" + }, + "from": { + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/rhscl/php-56-rhel7:latest" } } ] @@ -135,10 +193,13 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/openshift3/python-33-rhel7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "3.3" + } }, { "name": "3.3", @@ -151,8 +212,38 @@ "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/openshift3/python-33-rhel7:latest" + } + }, + { + "name": "2.7", + "annotations": { + "description": "Build and run Python 2.7 applications", + "iconClass": "icon-python", + "tags": "builder,python", + "supports":"python:2.7,python", + "version": "2.7", + "sampleRepo": "https://github.com/openshift/django-ex.git" + }, + "from": { + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/rhscl/python-27-rhel7:latest" + } + }, + { + "name": "3.4", + "annotations": { + "description": "Build and run Python 3.4 applications", + "iconClass": "icon-python", + "tags": "builder,python", + "supports":"python:3.4,python", + "version": "3.4", + "sampleRepo": "https://github.com/openshift/django-ex.git" + }, + "from": { + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/rhscl/python-34-rhel7:latest" } } ] @@ -166,16 +257,26 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/openshift3/mysql-55-rhel7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "5.5" + } }, { "name": "5.5", "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/openshift3/mysql-55-rhel7:latest" + } + }, + { + "name": "5.6", + "from": { + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/rhscl/mysql-56-rhel7:latest" } } ] @@ -189,16 +290,26 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/openshift3/postgresql-92-rhel7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "9.2" + } }, { "name": "9.2", "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/openshift3/postgresql-92-rhel7:latest" + } + }, + { + "name": "9.4", + "from": { + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/rhscl/postgresql-94-rhel7:latest" } } ] @@ -212,16 +323,26 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/openshift3/mongodb-24-rhel7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "2.4" + } }, { "name": "2.4", "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/openshift3/mongodb-24-rhel7:latest" + } + }, + { + "name": "2.6", + "from": { + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/rhscl/mongodb-26-rhel7:latest" } } ] @@ -235,16 +356,19 @@ "creationTimestamp": null }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/openshift3/jenkins-1-rhel7", "tags": [ { - "name": "latest" + "name": "latest", + "from": { + "Kind": "ImageStreamTag", + "Name": "1" + } }, { "name": "1", "from": { - "Kind": "ImageStreamTag", - "Name": "latest" + "Kind": "DockerImage", + "Name": "registry.access.redhat.com/openshift3/jenkins-1-rhel7:latest" } } ] diff --git a/roles/openshift_examples/files/examples/xpaas-streams/jboss-image-streams.json b/roles/openshift_examples/files/examples/xpaas-streams/jboss-image-streams.json index 37e6269fe..aaf5569ae 100644 --- a/roles/openshift_examples/files/examples/xpaas-streams/jboss-image-streams.json +++ b/roles/openshift_examples/files/examples/xpaas-streams/jboss-image-streams.json @@ -12,19 +12,21 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-webserver3-tomcat7-openshift" + "name": "jboss-webserver30-tomcat7-openshift" }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/jboss-webserver-3/tomcat7-openshift", + "dockerImageRepository": "registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat7-openshift", "tags": [ { - "name": "3.0", + "name": "1.1", "annotations": { - "description": "JBoss Web Server v3 Tomcat 7 STI images.", + "description": "JBoss Web Server 3.0 Tomcat 7 S2I images.", "iconClass": "icon-jboss", - "tags": "java", - "supports":"tomcat7:3.0,java", - "version": "3.0" + "tags": "builder,tomcat,tomcat7,java,jboss,xpaas", + "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" } } ] @@ -34,19 +36,21 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-webserver3-tomcat8-openshift" + "name": "jboss-webserver30-tomcat8-openshift" }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/jboss-webserver-3/tomcat8-openshift", + "dockerImageRepository": "registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat8-openshift", "tags": [ { - "name": "3.0", + "name": "1.1", "annotations": { - "description": "JBoss Web Server v3 Tomcat 8 STI images.", + "description": "JBoss Web Server 3.0 Tomcat 8 S2I images.", "iconClass": "icon-jboss", - "tags": "java", - "supports":"tomcat8:3.0,java", - "version": "3.0" + "tags": "builder,tomcat,tomcat8,java,jboss,xpaas", + "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" } } ] @@ -56,19 +60,22 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-eap6-openshift" + "name": "jboss-eap64-openshift" }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/jboss-eap-6/eap-openshift", + "dockerImageRepository": "registry.access.redhat.com/jboss-eap-6/eap64-openshift", "tags": [ { - "name": "6.4", + "name": "1.1", "annotations": { - "description": "JBoss EAP 6 STI images.", + "description": "JBoss EAP 6.4 S2I images.", "iconClass": "icon-jboss", - "tags": "javaee", - "supports":"eap:6.4,jee,java", - "version": "6.4" + "tags": "builder,eap,javaee,java,jboss,xpaas", + "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" } } ] @@ -78,19 +85,19 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "jboss-amq-6" + "name": "jboss-amq-62" }, "spec": { - "dockerImageRepository": "registry.access.redhat.com/jboss-amq-6/amq-openshift", + "dockerImageRepository": "registry.access.redhat.com/jboss-amq-6/amq62-openshift", "tags": [ { - "name": "6.2", + "name": "1.1", "annotations": { - "description": "JBoss ActiveMQ 6 broker image.", + "description": "JBoss A-MQ 6.2 broker image.", "iconClass": "icon-jboss", - "tags": "javaee", - "supports":"amq:6.2,jee,java", - "version": "6.2" + "tags": "messaging,amq,jboss,xpaas", + "supports":"amq:6.2,messaging,xpaas:1.1", + "version": "1.1" } } ] diff --git a/roles/openshift_examples/files/examples/xpaas-templates/amq62-basic.json b/roles/openshift_examples/files/examples/xpaas-templates/amq62-basic.json new file mode 100644 index 000000000..3fd04c28c --- /dev/null +++ b/roles/openshift_examples/files/examples/xpaas-templates/amq62-basic.json @@ -0,0 +1,325 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "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.1.0" + }, + "name": "amq62-basic" + }, + "labels": { + "template": "amq62-basic", + "xpaas": "1.1.0" + }, + "parameters": [ + { + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "broker", + "required": true + }, + { + "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "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 + }, + { + "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 + }, + { + "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}", + "generate": "expression", + "required": false + }, + { + "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}", + "generate": "expression", + "required": false + }, + { + "description": "User name for admin user. If left empty, it will be generated.", + "name": "AMQ_ADMIN_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "description": "Password for admin user. If left empty, it will be generated.", + "name": "AMQ_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "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:<namespace>:default' where <namespace> is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "kube", + "required": false + }, + { + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "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 + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5672, + "targetPort": 5672 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-amqp", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's AMQP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 1883, + "targetPort": 1883 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mqtt", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's MQTT port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 61613, + "targetPort": 61613 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-stomp", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's STOMP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 61616, + "targetPort": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-tcp", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's OpenWire port." + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-amq", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-amq", + "image": "jboss-amq-62", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl -s -L -u ${AMQ_ADMIN_USERNAME}:${AMQ_ADMIN_PASSWORD} 'http://localhost:8161/hawtio/jolokia/read/org.apache.activemq:type=Broker,brokerName=*,service=Health/CurrentStatus' | grep -q '\"CurrentStatus\" *: *\"Good\"'" + ] + } + }, + "ports": [ + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_TRANSPORTS", + "value": "${MQ_PROTOCOL}" + }, + { + "name": "AMQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "AMQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "AMQ_ADMIN_USERNAME", + "value": "${AMQ_ADMIN_USERNAME}" + }, + { + "name": "AMQ_ADMIN_PASSWORD", + "value": "${AMQ_ADMIN_PASSWORD}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-tcp" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/xpaas-templates/amq6-persistent.json b/roles/openshift_examples/files/examples/xpaas-templates/amq62-persistent-ssl.json index 5cbc7ee7e..aa9e716cf 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/amq6-persistent.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/amq62-persistent-ssl.json @@ -3,82 +3,117 @@ "apiVersion": "v1", "metadata": { "annotations": { - "description": "Application template for ActiveMQ brokers using persistent storage." + "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.1.0" }, - "name": "amq6-persistent" + "name": "amq62-persistent-ssl" }, "labels": { - "template": "amq6-persistent" + "template": "amq62-persistent-ssl", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "ActiveMQ Release version, e.g. 6.2, etc.", - "name": "AMQ_RELEASE", - "value": "6.2" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "broker" + "value": "broker", + "required": true }, { - "description": "Protocol to configure. Only openwire is supported by EAP. amqp, amqp+ssl, mqtt, stomp, stomp+ssl, and ssl are not supported by EAP", + "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" + "value": "openwire", + "required": false }, { - "description": "Queue names", + "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": "" + "value": "", + "required": false }, { - "description": "Topic names", + "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": "" + "value": "", + "required": false }, { "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "512Mi", + "required": true }, { - "description": "Broker user name", + "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}", - "generate": "expression" + "generate": "expression", + "required": false }, { - "description": "Broker user 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}", - "generate": "expression" + "generate": "expression", + "required": false }, { - "description": "ActiveMQ Admin User", + "description": "User name for admin user. If left empty, it will be generated.", "name": "AMQ_ADMIN_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "ActiveMQ Admin Password", + "description": "Password for admin user. If left empty, it will be generated.", "name": "AMQ_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Name of a secret containing SSL related files", "name": "AMQ_SECRET", - "value": "amq-app-secret" + "value": "amq-app-secret", + "required": true }, { "description": "SSL trust store filename", "name": "AMQ_TRUSTSTORE", - "value": "broker.ts" + "value": "broker.ts", + "required": true + }, + { + "description": "SSL trust store password", + "name": "AMQ_TRUSTSTORE_PASSWORD", + "value": "", + "required": true }, { "description": "SSL key store filename", "name": "AMQ_KEYSTORE", - "value": "broker.ks" + "value": "broker.ks", + "required": true + }, + { + "description": "Password for accessing SSL keystore", + "name": "AMQ_KEYSTORE_PASSWORD", + "value": "", + "required": true + }, + { + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "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 } ], "objects": [ @@ -102,7 +137,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's amqp port." + "description": "The broker's AMQP port." } } }, @@ -126,7 +161,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's amqp ssl port." + "description": "The broker's AMQP SSL port." } } }, @@ -150,7 +185,31 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's mqtt port." + "description": "The broker's MQTT port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8883, + "targetPort": 8883 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mqtt-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's MQTT SSL port." } } }, @@ -174,7 +233,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's stomp port." + "description": "The broker's STOMP port." } } }, @@ -198,7 +257,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's stomp ssl port." + "description": "The broker's STOMP SSL port." } } }, @@ -222,7 +281,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's tcp (openwire) port." + "description": "The broker's OpenWire port." } } }, @@ -246,7 +305,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's tcp ssl (openwire) port." + "description": "The broker's OpenWire (SSL) port." } } }, @@ -273,10 +332,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-amq-6:${AMQ_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.1" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -293,10 +355,11 @@ }, "spec": { "serviceAccount": "amq-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-amq", - "image": "jboss-amq-6", + "image": "jboss-amq-62", "imagePullPolicy": "Always", "volumeMounts": [ { @@ -335,6 +398,11 @@ "protocol": "TCP" }, { + "name": "mqtt-ssl", + "containerPort": 8883, + "protocol": "TCP" + }, + { "name": "stomp", "containerPort": 61613, "protocol": "TCP" @@ -365,7 +433,7 @@ "value": "${MQ_PASSWORD}" }, { - "name": "AMQ_PROTOCOLS", + "name": "AMQ_TRANSPORTS", "value": "${MQ_PROTOCOL}" }, { @@ -393,8 +461,20 @@ "value": "${AMQ_TRUSTSTORE}" }, { + "name": "AMQ_TRUSTSTORE_PASSWORD", + "value": "${AMQ_TRUSTSTORE_PASSWORD}" + }, + { "name": "AMQ_KEYSTORE", "value": "${AMQ_KEYSTORE}" + }, + { + "name": "AMQ_KEYSTORE_PASSWORD", + "value": "${AMQ_KEYSTORE_PASSWORD}" + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" } ] } @@ -427,7 +507,9 @@ } }, "spec": { - "accessModes": [ "ReadWriteOnce" ], + "accessModes": [ + "ReadWriteOnce" + ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" diff --git a/roles/openshift_examples/files/examples/xpaas-templates/amq62-persistent.json b/roles/openshift_examples/files/examples/xpaas-templates/amq62-persistent.json new file mode 100644 index 000000000..3a2db3ce9 --- /dev/null +++ b/roles/openshift_examples/files/examples/xpaas-templates/amq62-persistent.json @@ -0,0 +1,343 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "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.1.0" + }, + "name": "amq62-persistent" + }, + "labels": { + "template": "amq62-persistent", + "xpaas": "1.1.0" + }, + "parameters": [ + { + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "broker", + "required": true + }, + { + "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "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 + }, + { + "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 + }, + { + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "512Mi", + "required": true + }, + { + "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}", + "generate": "expression", + "required": false + }, + { + "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}", + "generate": "expression", + "required": false + }, + { + "description": "User name for admin user. If left empty, it will be generated.", + "name": "AMQ_ADMIN_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "description": "Password for admin user. If left empty, it will be generated.", + "name": "AMQ_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "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 + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5672, + "targetPort": 5672 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-amqp", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's AMQP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 1883, + "targetPort": 1883 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mqtt", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's MQTT port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 61613, + "targetPort": 61613 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-stomp", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's STOMP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 61616, + "targetPort": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-tcp", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's OpenWire port." + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-amq", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-amq", + "image": "jboss-amq-62", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "mountPath": "/opt/amq/data/kahadb", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl -s -L -u ${AMQ_ADMIN_USERNAME}:${AMQ_ADMIN_PASSWORD} 'http://localhost:8161/hawtio/jolokia/read/org.apache.activemq:type=Broker,brokerName=*,service=Health/CurrentStatus' | grep -q '\"CurrentStatus\" *: *\"Good\"'" + ] + } + }, + "ports": [ + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_TRANSPORTS", + "value": "${MQ_PROTOCOL}" + }, + { + "name": "AMQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "AMQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "AMQ_ADMIN_USERNAME", + "value": "${AMQ_ADMIN_USERNAME}" + }, + { + "name": "AMQ_ADMIN_PASSWORD", + "value": "${AMQ_ADMIN_PASSWORD}" + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-amq-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-amq-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-amq-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/roles/openshift_examples/files/examples/xpaas-templates/amq6.json b/roles/openshift_examples/files/examples/xpaas-templates/amq62-ssl.json index 7decdfe52..f61fb24c2 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/amq6.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/amq62-ssl.json @@ -3,77 +3,117 @@ "apiVersion": "v1", "metadata": { "annotations": { - "description": "Application template for ActiveMQ brokers." + "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.1.0" }, - "name": "amq6" + "name": "amq62-ssl" }, "labels": { - "template": "amq6" + "template": "amq62-ssl", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "ActiveMQ Release version, e.g. 6.2, etc.", - "name": "AMQ_RELEASE", - "value": "6.2" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "broker" + "value": "broker", + "required": true }, { - "description": "Protocol to configure. Only openwire is supported by EAP. amqp, amqp+ssl, mqtt, stomp, stomp+ssl, and ssl are not supported by EAP", + "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" + "value": "openwire", + "required": false }, { - "description": "Queue names", + "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": "" + "value": "", + "required": false }, { - "description": "Topic names", + "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": "" + "value": "", + "required": false }, { - "description": "Broker user name", + "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}", - "generate": "expression" + "generate": "expression", + "required": false }, { - "description": "Broker user 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}", - "generate": "expression" + "generate": "expression", + "required": false }, { - "description": "ActiveMQ Admin User", + "description": "User name for admin user. If left empty, it will be generated.", "name": "AMQ_ADMIN_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "ActiveMQ Admin Password", + "description": "Password for admin user. If left empty, it will be generated.", "name": "AMQ_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Name of a secret containing SSL related files", "name": "AMQ_SECRET", - "value": "amq-app-secret" + "value": "amq-app-secret", + "required": true }, { "description": "SSL trust store filename", "name": "AMQ_TRUSTSTORE", - "value": "broker.ts" + "value": "broker.ts", + "required": true + }, + { + "description": "SSL trust store password", + "name": "AMQ_TRUSTSTORE_PASSWORD", + "value": "", + "required": true }, { "description": "SSL key store filename", "name": "AMQ_KEYSTORE", - "value": "broker.ks" + "value": "broker.ks", + "required": true + }, + { + "description": "Password for accessing SSL keystore", + "name": "AMQ_KEYSTORE_PASSWORD", + "value": "", + "required": true + }, + { + "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:<namespace>:default' where <namespace> is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "kube", + "required": false + }, + { + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "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 } ], "objects": [ @@ -97,7 +137,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's amqp port." + "description": "The broker's AMQP port." } } }, @@ -121,7 +161,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's amqp ssl port." + "description": "The broker's AMQP SSL port." } } }, @@ -145,7 +185,31 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's mqtt port." + "description": "The broker's MQTT port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8883, + "targetPort": 8883 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mqtt-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's MQTT SSL port." } } }, @@ -169,7 +233,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's stomp port." + "description": "The broker's STOMP port." } } }, @@ -193,7 +257,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's stomp ssl port." + "description": "The broker's STOMP SSL port." } } }, @@ -217,7 +281,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's tcp (openwire) port." + "description": "The broker's OpenWire port." } } }, @@ -241,7 +305,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's tcp ssl (openwire) port." + "description": "The broker's OpenWire (SSL) port." } } }, @@ -268,10 +332,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-amq-6:${AMQ_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.1" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -288,10 +355,11 @@ }, "spec": { "serviceAccount": "amq-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-amq", - "image": "jboss-amq-6", + "image": "jboss-amq-62", "imagePullPolicy": "Always", "volumeMounts": [ { @@ -326,6 +394,11 @@ "protocol": "TCP" }, { + "name": "mqtt-ssl", + "containerPort": 8883, + "protocol": "TCP" + }, + { "name": "stomp", "containerPort": 61613, "protocol": "TCP" @@ -356,7 +429,7 @@ "value": "${MQ_PASSWORD}" }, { - "name": "AMQ_PROTOCOLS", + "name": "AMQ_TRANSPORTS", "value": "${MQ_PROTOCOL}" }, { @@ -376,10 +449,22 @@ "value": "${AMQ_ADMIN_PASSWORD}" }, { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { "name": "AMQ_MESH_SERVICE_NAME", "value": "${APPLICATION_NAME}-amq-tcp" }, { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { "name": "AMQ_KEYSTORE_TRUSTSTORE_DIR", "value": "/etc/amq-secret-volume" }, @@ -388,8 +473,20 @@ "value": "${AMQ_TRUSTSTORE}" }, { + "name": "AMQ_TRUSTSTORE_PASSWORD", + "value": "${AMQ_TRUSTSTORE_PASSWORD}" + }, + { "name": "AMQ_KEYSTORE", "value": "${AMQ_KEYSTORE}" + }, + { + "name": "AMQ_KEYSTORE_PASSWORD", + "value": "${AMQ_KEYSTORE_PASSWORD}" + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" } ] } diff --git a/roles/openshift_examples/files/examples/xpaas-templates/eap6-amq-persistent-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/eap64-amq-persistent-s2i.json index b64acae8b..2fc3b5b25 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/eap6-amq-persistent-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/eap64-amq-persistent-s2i.json @@ -3,129 +3,149 @@ "apiVersion": "v1", "metadata": { "annotations": { - "description": "Application template for EAP 6 A-MQ applications with persistent storage built using STI.", - "iconClass" : "icon-jboss" + "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.1.0" }, - "name": "eap6-amq-persistent-sti" + "name": "eap64-amq-persistent-s2i" }, "labels": { - "template": "eap6-amq-persistent-sti" + "template": "eap64-amq-persistent-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "EAP Release version, e.g. 6.4, etc.", - "name": "EAP_RELEASE", - "value": "6.4" - }, - { - "description": "ActiveMQ Release version, e.g. 6.2, etc.", - "name": "AMQ_RELEASE", - "value": "6.2" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "eap-app" + "value": "eap-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "helloworld-mdb", + "required": false }, { "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "512Mi", + "required": true }, { "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", - "value": "java:/ConnectionFactory" + "value": "java:/ConnectionFactory", + "required": false }, { - "description": "Protocol to configure. Only openwire is supported by EAP. amqp, amqp+ssl, mqtt, stomp, stomp+ssl, and ssl are not supported by EAP", + "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" + "value": "openwire", + "required": false }, { - "description": "Queue names", + "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": "" + "value": "HELLOWORLDMDBQueue", + "required": false }, { - "description": "Topic names", + "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": "" + "value": "HELLOWORLDMDBTopic", + "required": false }, { "description": "The name of the secret containing the keystore file", "name": "EAP_HTTPS_SECRET", - "value": "eap-app-secret" + "value": "eap-app-secret", + "required": false }, { "description": "The name of the keystore file within the secret", "name": "EAP_HTTPS_KEYSTORE", - "value": "keystore.jks" + "value": "keystore.jks", + "required": false }, { "description": "The name associated with the server certificate", "name": "EAP_HTTPS_NAME", - "value": "" + "value": "", + "required": false }, { "description": "The password for the keystore and certificate", "name": "EAP_HTTPS_PASSWORD", - "value": "" + "value": "", + "required": false }, { - "description": "Broker user name", + "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}", - "generate": "expression" + "generate": "expression", + "required": false }, { - "description": "Broker user 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}", - "generate": "expression" + "generate": "expression", + "required": false }, { - "description": "ActiveMQ Admin User", + "description": "User name for broker admin. If left empty, it will be generated.", "name": "AMQ_ADMIN_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "ActiveMQ Admin Password", + "description": "Password for broker admin. If left empty, it will be generated.", "name": "AMQ_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -149,7 +169,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's HTTP port." } } }, @@ -173,32 +193,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." - } - } - }, - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { - "port": 8888, - "targetPort": 8888 - } - ], - "portalIP": "None", - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}-ping", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Ping service for clustered applications." + "description": "The web server's HTTPS port." } } }, @@ -222,25 +217,25 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's tcp (openwire) port." + "description": "The broker's OpenWire port." } } }, { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Route for application's http service." - } + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -249,23 +244,23 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Route for application's https service." + "description": "Route for application's HTTPS service." } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -292,18 +287,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-eap6-openshift:${EAP_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.1" } } }, @@ -317,18 +313,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -359,6 +358,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -375,6 +377,7 @@ }, "spec": { "serviceAccount": "eap-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -443,12 +446,16 @@ "value": "${MQ_TOPICS}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", - "value": "${APPLICATION_NAME}-ping" + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", - "value": "8888" + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } }, { "name": "EAP_HTTPS_KEYSTORE_DIR", @@ -504,10 +511,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-amq-6:${AMQ_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.1" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -523,10 +533,11 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-amq", - "image": "jboss-amq-6", + "image": "jboss-amq-62", "imagePullPolicy": "Always", "readinessProbe": { "exec": { @@ -590,7 +601,7 @@ "value": "${MQ_PASSWORD}" }, { - "name": "AMQ_PROTOCOLS", + "name": "AMQ_TRANSPORTS", "value": "${MQ_PROTOCOL}" }, { @@ -634,7 +645,9 @@ } }, "spec": { - "accessModes": [ "ReadWriteOnce" ], + "accessModes": [ + "ReadWriteOnce" + ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" diff --git a/roles/openshift_examples/files/examples/xpaas-templates/eap6-amq-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/eap64-amq-s2i.json index 20b234bd0..a420bb1ea 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/eap6-amq-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/eap64-amq-s2i.json @@ -3,124 +3,143 @@ "apiVersion": "v1", "metadata": { "annotations": { - "description": "Application template for EAP 6 A-MQ applications built using STI.", - "iconClass" : "icon-jboss" + "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.1.0" }, - "name": "eap6-amq-sti" + "name": "eap64-amq-s2i" }, "labels": { - "template": "eap6-amq-sti" + "template": "eap64-amq-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "EAP Release version, e.g. 6.4, etc.", - "name": "EAP_RELEASE", - "value": "6.4" - }, - { - "description": "ActiveMQ Release version, e.g. 6.2, etc.", - "name": "AMQ_RELEASE", - "value": "6.2" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "eap-app" + "value": "eap-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "helloworld-mdb", + "required": false }, { "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", "name": "MQ_JNDI", - "value": "java:/ConnectionFactory" + "value": "java:/ConnectionFactory", + "required": false }, { - "description": "Protocol to configure. Only openwire is supported by EAP. amqp, amqp+ssl, mqtt, stomp, stomp+ssl, and ssl are not supported by EAP", + "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" + "value": "openwire", + "required": false }, { - "description": "Queue names", + "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": "" + "value": "HELLOWORLDMDBQueue", + "required": false }, { - "description": "Topic names", + "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": "" + "value": "HELLOWORLDMDBTopic", + "required": false }, { "description": "The name of the secret containing the keystore file", "name": "EAP_HTTPS_SECRET", - "value": "eap-app-secret" + "value": "eap-app-secret", + "required": false }, { "description": "The name of the keystore file within the secret", "name": "EAP_HTTPS_KEYSTORE", - "value": "keystore.jks" + "value": "keystore.jks", + "required": false }, { "description": "The name associated with the server certificate", "name": "EAP_HTTPS_NAME", - "value": "" + "value": "", + "required": false }, { "description": "The password for the keystore and certificate", "name": "EAP_HTTPS_PASSWORD", - "value": "" + "value": "", + "required": false }, { - "description": "Broker user name", + "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}", - "generate": "expression" + "generate": "expression", + "required": false }, { - "description": "Broker user 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}", - "generate": "expression" + "generate": "expression", + "required": false }, { - "description": "ActiveMQ Admin User", + "description": "User name for broker admin. If left empty, it will be generated.", "name": "AMQ_ADMIN_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "ActiveMQ Admin Password", + "description": "Password for broker admin. If left empty, it will be generated.", "name": "AMQ_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -144,7 +163,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's http port." + "description": "The web server's HTTP port." } } }, @@ -168,32 +187,7 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The web server's https port." - } - } - }, - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { - "port": 8888, - "targetPort": 8888 - } - ], - "portalIP": "None", - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}-ping", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Ping service for clustered applications." + "description": "The web server's HTTPS port." } } }, @@ -217,25 +211,25 @@ "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "The broker's tcp (openwire) port." + "description": "The broker's OpenWire port." } } }, { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Route for application's http service." - } + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -244,23 +238,23 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, "annotations": { - "description": "Route for application's https service." + "description": "Route for application's HTTPS service." } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -287,18 +281,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-eap6-openshift:${EAP_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.1" } } }, @@ -312,18 +307,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -354,6 +352,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -370,6 +371,7 @@ }, "spec": { "serviceAccount": "eap-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -438,12 +440,16 @@ "value": "${MQ_TOPICS}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", - "value": "${APPLICATION_NAME}-ping" + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", - "value": "8888" + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } }, { "name": "EAP_HTTPS_KEYSTORE_DIR", @@ -499,10 +505,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-amq-6:${AMQ_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.1" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -518,10 +527,11 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-amq", - "image": "jboss-amq-6", + "image": "jboss-amq-62", "imagePullPolicy": "Always", "readinessProbe": { "exec": { @@ -579,7 +589,7 @@ "value": "${MQ_PASSWORD}" }, { - "name": "AMQ_PROTOCOLS", + "name": "AMQ_TRANSPORTS", "value": "${MQ_PROTOCOL}" }, { diff --git a/roles/openshift_examples/files/examples/xpaas-templates/eap6-basic-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/eap64-basic-s2i.json index 146bfb1ee..3f90eb8be 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/eap6-basic-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/eap64-basic-s2i.json @@ -3,72 +3,86 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-jboss", - "description": "Application template for EAP 6 applications built using STI." + "iconClass": "icon-jboss", + "description": "Application template for EAP 6 applications built using S2I.", + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.1.0" }, - "name": "eap6-basic-sti" + "name": "eap64-basic-s2i" }, "labels": { - "template": "eap6-basic-sti" + "template": "eap64-basic-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "EAP Release version, e.g. 6.4, etc.", - "name": "EAP_RELEASE", - "value": "6.4" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "eap-app" + "value": "eap-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI", - "value": "https://github.com/jboss-developer/jboss-eap-quickstarts" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "6.4.x" + "name": "SOURCE_REPOSITORY_REF", + "value": "6.4.x", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "kitchensink" + "name": "CONTEXT_DIR", + "value": "kitchensink", + "required": false }, { "description": "Queue names", "name": "HORNETQ_QUEUES", - "value": "" + "value": "", + "required": false }, { "description": "Topic names", "name": "HORNETQ_TOPICS", - "value": "" + "value": "", + "required": false }, { "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -97,36 +111,11 @@ } }, { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { - "port": 8888, - "targetPort": 8888 - } - ], - "portalIP": "None", - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}-ping", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Ping service for clustered applications." - } - } - }, - { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -135,7 +124,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -164,18 +153,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-eap6-openshift:${EAP_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.1" } } }, @@ -189,18 +179,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -231,6 +224,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -246,6 +242,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -274,12 +271,16 @@ ], "env": [ { - "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", - "value": "${APPLICATION_NAME}-ping" + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", - "value": "8888" + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } }, { "name": "HORNETQ_CLUSTER_PASSWORD", @@ -301,4 +302,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/eap6-https-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/eap64-https-s2i.json index 5df36ccc2..220d2f5b9 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/eap6-https-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/eap64-https-s2i.json @@ -3,92 +3,110 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-jboss", - "description": "Application template for EAP 6 applications built using STI." + "iconClass": "icon-jboss", + "description": "Application template for EAP 6 applications built using S2I.", + "tags": "eap,javaee,java,jboss,xpaas", + "version": "1.1.0" }, - "name": "eap6-https-sti" + "name": "eap64-https-s2i" }, "labels": { - "template": "eap6-https-sti" + "template": "eap64-https-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "EAP Release version, e.g. 6.4, etc.", - "name": "EAP_RELEASE", - "value": "6.4" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "eap-app" + "value": "eap-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI", - "value": "https://github.com/jboss-developer/jboss-eap-quickstarts" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "6.4.x" + "name": "SOURCE_REPOSITORY_REF", + "value": "6.4.x", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "kitchensink" + "name": "CONTEXT_DIR", + "value": "kitchensink", + "required": false }, { "description": "Queue names", "name": "HORNETQ_QUEUES", - "value": "" + "value": "", + "required": false }, { "description": "Topic names", "name": "HORNETQ_TOPICS", - "value": "" + "value": "", + "required": false }, { "description": "The name of the secret containing the keystore file", "name": "EAP_HTTPS_SECRET", - "value": "eap-app-secret" + "value": "eap-app-secret", + "required": true }, { "description": "The name of the keystore file within the secret", "name": "EAP_HTTPS_KEYSTORE", - "value": "keystore.jks" + "value": "keystore.jks", + "required": false }, { "description": "The name associated with the server certificate", "name": "EAP_HTTPS_NAME", - "value": "" + "value": "", + "required": false }, { "description": "The password for the keystore and certificate", "name": "EAP_HTTPS_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -141,36 +159,11 @@ } }, { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { - "port": 8888, - "targetPort": 8888 - } - ], - "portalIP": "None", - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}-ping", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Ping service for clustered applications." - } - } - }, - { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -179,7 +172,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -188,9 +181,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -199,12 +192,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -231,18 +224,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-eap6-openshift:${EAP_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.1" } } }, @@ -256,18 +250,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -298,6 +295,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -314,6 +314,7 @@ }, "spec": { "serviceAccount": "eap-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -354,12 +355,16 @@ ], "env": [ { - "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", - "value": "${APPLICATION_NAME}-ping" + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", - "value": "8888" + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } }, { "name": "EAP_HTTPS_KEYSTORE_DIR", @@ -405,4 +410,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/eap6-mongodb-persistent-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/eap64-mongodb-persistent-s2i.json index 289ab284f..a1a3a9f2c 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/eap6-mongodb-persistent-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/eap64-mongodb-persistent-s2i.json @@ -3,148 +3,179 @@ "apiVersion": "v1", "metadata": { "annotations": { - "description": "Application template for EAP 6 MongDB applications with persistent storage built using STI.", - "iconClass" : "icon-jboss" + "description": "Application template for EAP 6 MongDB applications with persistent storage built using S2I.", + "iconClass": "icon-jboss", + "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", + "version": "1.1.0" }, - "name": "eap6-mongodb-persistent-sti" + "name": "eap64-mongodb-persistent-s2i" }, "labels": { - "template": "eap6-mongodb-persistent-sti" + "template": "eap64-mongodb-persistent-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "EAP Release version, e.g. 6.4, etc.", - "name": "EAP_RELEASE", - "value": "6.4" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "eap-app" + "value": "eap-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "512Mi", + "required": true }, { "description": "Queue names", "name": "HORNETQ_QUEUES", - "value": "" + "value": "", + "required": false }, { "description": "Topic names", "name": "HORNETQ_TOPICS", - "value": "" + "value": "", + "required": false }, { "description": "The name of the secret containing the keystore file", "name": "EAP_HTTPS_SECRET", - "value": "eap-app-secret" + "value": "eap-app-secret", + "required": false }, { "description": "The name of the keystore file within the secret", "name": "EAP_HTTPS_KEYSTORE", - "value": "keystore.jks" + "value": "keystore.jks", + "required": false }, { "description": "The name associated with the server certificate", "name": "EAP_HTTPS_NAME", - "value": "" + "value": "", + "required": false }, { "description": "The password for the keystore and certificate", "name": "EAP_HTTPS_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Disable data file preallocation.", - "name": "MONGODB_NOPREALLOC" + "name": "MONGODB_NOPREALLOC", + "required": false }, { "description": "Set MongoDB to use a smaller default data file size.", - "name": "MONGODB_SMALLFILES" + "name": "MONGODB_SMALLFILES", + "required": false }, { "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", - "name": "MONGODB_QUIET" + "name": "MONGODB_QUIET", + "required": false }, { "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -202,31 +233,6 @@ "spec": { "ports": [ { - "port": 8888, - "targetPort": 8888 - } - ], - "portalIP": "None", - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}-ping", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Ping service for clustered applications." - } - } - }, - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { "port": 27017, "targetPort": 27017 } @@ -248,9 +254,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -259,7 +265,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -268,9 +274,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -279,12 +285,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -311,18 +317,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-eap6-openshift:${EAP_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.1" } } }, @@ -336,18 +343,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -378,6 +388,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -394,6 +407,7 @@ }, "spec": { "serviceAccount": "eap-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -470,12 +484,16 @@ "value": "${DB_TX_ISOLATION}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", - "value": "${APPLICATION_NAME}-ping" + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", - "value": "8888" + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } }, { "name": "EAP_HTTPS_KEYSTORE_DIR", @@ -543,10 +561,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mongodb:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -562,6 +583,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mongodb", @@ -574,11 +596,11 @@ } ], "volumeMounts": [ - { - "mountPath": "/var/lib/mongodb/data", - "name": "${APPLICATION_NAME}-mongodb-pvol" - } - ], + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-mongodb-pvol" + } + ], "env": [ { "name": "MONGODB_USER", @@ -633,7 +655,9 @@ } }, "spec": { - "accessModes": [ "ReadWriteOnce" ], + "accessModes": [ + "ReadWriteOnce" + ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" @@ -642,4 +666,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/eap6-mongodb-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/eap64-mongodb-s2i.json index 22b301aa9..dfd1443ed 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/eap6-mongodb-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/eap64-mongodb-s2i.json @@ -3,143 +3,173 @@ "apiVersion": "v1", "metadata": { "annotations": { - "description": "Application template for EAP 6 MongDB applications built using STI.", - "iconClass" : "icon-jboss" + "description": "Application template for EAP 6 MongDB applications built using S2I.", + "iconClass": "icon-jboss", + "tags": "eap,mongodb,javaee,java,database,jboss,xpaas", + "version": "1.1.0" }, - "name": "eap6-mongodb-sti" + "name": "eap64-mongodb-s2i" }, "labels": { - "template": "eap6-mongodb-sti" + "template": "eap64-mongodb-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "EAP Release version, e.g. 6.4, etc.", - "name": "EAP_RELEASE", - "value": "6.4" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "eap-app" + "value": "eap-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "Queue names", "name": "HORNETQ_QUEUES", - "value": "" + "value": "", + "required": false }, { "description": "Topic names", "name": "HORNETQ_TOPICS", - "value": "" + "value": "", + "required": false }, { "description": "The name of the secret containing the keystore file", "name": "EAP_HTTPS_SECRET", - "value": "eap-app-secret" + "value": "eap-app-secret", + "required": false }, { "description": "The name of the keystore file within the secret", "name": "EAP_HTTPS_KEYSTORE", - "value": "keystore.jks" + "value": "keystore.jks", + "required": false }, { "description": "The name associated with the server certificate", "name": "EAP_HTTPS_NAME", - "value": "" + "value": "", + "required": false }, { "description": "The password for the keystore and certificate", "name": "EAP_HTTPS_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Disable data file preallocation.", - "name": "MONGODB_NOPREALLOC" + "name": "MONGODB_NOPREALLOC", + "required": false }, { "description": "Set MongoDB to use a smaller default data file size.", - "name": "MONGODB_SMALLFILES" + "name": "MONGODB_SMALLFILES", + "required": false }, { "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", - "name": "MONGODB_QUIET" + "name": "MONGODB_QUIET", + "required": false }, { "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -197,31 +227,6 @@ "spec": { "ports": [ { - "port": 8888, - "targetPort": 8888 - } - ], - "portalIP": "None", - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}-ping", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Ping service for clustered applications." - } - } - }, - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { "port": 27017, "targetPort": 27017 } @@ -243,9 +248,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -254,7 +259,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -263,9 +268,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -274,12 +279,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -306,18 +311,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-eap6-openshift:${EAP_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.1" } } }, @@ -331,18 +337,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -373,6 +382,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -389,6 +401,7 @@ }, "spec": { "serviceAccount": "eap-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -465,12 +478,16 @@ "value": "${DB_TX_ISOLATION}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", - "value": "${APPLICATION_NAME}-ping" + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", - "value": "8888" + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } }, { "name": "EAP_HTTPS_KEYSTORE_DIR", @@ -538,10 +555,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mongodb:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -557,6 +577,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mongodb", @@ -605,4 +626,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/eap6-mysql-persistent-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/eap64-mysql-persistent-s2i.json index 648a53199..fdd368a5f 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/eap6-mysql-persistent-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/eap64-mysql-persistent-s2i.json @@ -3,150 +3,182 @@ "apiVersion": "v1", "metadata": { "annotations": { - "description": "Application template for EAP 6 MySQL applications with persistent storage built using STI.", - "iconClass" : "icon-jboss" + "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.1.0" }, - "name": "eap6-mysql-persistent-sti" + "name": "eap64-mysql-persistent-s2i" }, "labels": { - "template": "eap6-mysql-persistent-sti" + "template": "eap64-mysql-persistent-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "EAP Release version, e.g. 6.4, etc.", - "name": "EAP_RELEASE", - "value": "6.4" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "eap-app" + "value": "eap-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "512Mi", + "required": true }, { "description": "Queue names", "name": "HORNETQ_QUEUES", - "value": "" + "value": "", + "required": false }, { "description": "Topic names", "name": "HORNETQ_TOPICS", - "value": "" + "value": "", + "required": false }, { "description": "The name of the secret containing the keystore file", "name": "EAP_HTTPS_SECRET", - "value": "eap-app-secret" + "value": "eap-app-secret", + "required": false }, { "description": "The name of the keystore file within the secret", "name": "EAP_HTTPS_KEYSTORE", - "value": "keystore.jks" + "value": "keystore.jks", + "required": false }, { "description": "The name associated with the server certificate", "name": "EAP_HTTPS_NAME", - "value": "" + "value": "", + "required": false }, { "description": "The password for the keystore and certificate", "name": "EAP_HTTPS_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Sets how the table names are stored and compared.", - "name": "MYSQL_LOWER_CASE_TABLE_NAMES" + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false }, { "description": "The maximum permitted number of simultaneous client connections.", - "name": "MYSQL_MAX_CONNECTIONS" + "name": "MYSQL_MAX_CONNECTIONS", + "required": false }, { "description": "The minimum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MIN_WORD_LEN" + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false }, { "description": "The maximum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MAX_WORD_LEN" + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false }, { "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", - "name": "MYSQL_AIO" + "name": "MYSQL_AIO", + "required": false }, { "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -204,31 +236,6 @@ "spec": { "ports": [ { - "port": 8888, - "targetPort": 8888 - } - ], - "portalIP": "None", - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}-ping", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Ping service for clustered applications." - } - } - }, - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { "port": 3306, "targetPort": 3306 } @@ -250,9 +257,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -261,7 +268,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -270,9 +277,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -281,12 +288,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -313,18 +320,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-eap6-openshift:${EAP_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.1" } } }, @@ -338,18 +346,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -380,6 +391,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -396,6 +410,7 @@ }, "spec": { "serviceAccount": "eap-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -472,12 +487,16 @@ "value": "${DB_TX_ISOLATION}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", - "value": "${APPLICATION_NAME}-ping" + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", - "value": "8888" + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } }, { "name": "EAP_HTTPS_KEYSTORE_DIR", @@ -545,10 +564,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mysql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -564,6 +586,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mysql", @@ -639,7 +662,9 @@ } }, "spec": { - "accessModes": [ "ReadWriteOnce" ], + "accessModes": [ + "ReadWriteOnce" + ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" @@ -648,4 +673,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/eap6-mysql-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/eap64-mysql-s2i.json index 83d5c8b18..ff6bdc112 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/eap6-mysql-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/eap64-mysql-s2i.json @@ -3,145 +3,176 @@ "apiVersion": "v1", "metadata": { "annotations": { - "description": "Application template for EAP 6 MySQL applications built using STI.", - "iconClass" : "icon-jboss" + "description": "Application template for EAP 6 MySQL applications built using S2I.", + "iconClass": "icon-jboss", + "tags": "eap,mysql,javaee,java,database,jboss,xpaas", + "version": "1.1.0" }, - "name": "eap6-mysql-sti" + "name": "eap64-mysql-s2i" }, "labels": { - "template": "eap6-mysql-sti" + "template": "eap64-mysql-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "EAP Release version, e.g. 6.4, etc.", - "name": "EAP_RELEASE", - "value": "6.4" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "eap-app" + "value": "eap-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "Queue names", "name": "HORNETQ_QUEUES", - "value": "" + "value": "", + "required": false }, { "description": "Topic names", "name": "HORNETQ_TOPICS", - "value": "" + "value": "", + "required": false }, { "description": "The name of the secret containing the keystore file", "name": "EAP_HTTPS_SECRET", - "value": "eap-app-secret" + "value": "eap-app-secret", + "required": false }, { "description": "The name of the keystore file within the secret", "name": "EAP_HTTPS_KEYSTORE", - "value": "keystore.jks" + "value": "keystore.jks", + "required": false }, { "description": "The name associated with the server certificate", "name": "EAP_HTTPS_NAME", - "value": "" + "value": "", + "required": false }, { "description": "The password for the keystore and certificate", "name": "EAP_HTTPS_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Sets how the table names are stored and compared.", - "name": "MYSQL_LOWER_CASE_TABLE_NAMES" + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false }, { "description": "The maximum permitted number of simultaneous client connections.", - "name": "MYSQL_MAX_CONNECTIONS" + "name": "MYSQL_MAX_CONNECTIONS", + "required": false }, { "description": "The minimum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MIN_WORD_LEN" + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false }, { "description": "The maximum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MAX_WORD_LEN" + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false }, { "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", - "name": "MYSQL_AIO" + "name": "MYSQL_AIO", + "required": false }, { "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -199,31 +230,6 @@ "spec": { "ports": [ { - "port": 8888, - "targetPort": 8888 - } - ], - "portalIP": "None", - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}-ping", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Ping service for clustered applications." - } - } - }, - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { "port": 3306, "targetPort": 3306 } @@ -245,9 +251,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -256,7 +262,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -265,9 +271,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -276,12 +282,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -308,18 +314,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-eap6-openshift:${EAP_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.1" } } }, @@ -333,18 +340,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -375,6 +385,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -391,6 +404,7 @@ }, "spec": { "serviceAccount": "eap-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -467,12 +481,16 @@ "value": "${DB_TX_ISOLATION}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", - "value": "${APPLICATION_NAME}-ping" + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", - "value": "8888" + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } }, { "name": "EAP_HTTPS_KEYSTORE_DIR", @@ -540,10 +558,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mysql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -559,6 +580,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mysql", @@ -611,4 +633,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/eap6-postgresql-persistent-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/eap64-postgresql-persistent-s2i.json index 53b953b7e..6443afdb0 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/eap6-postgresql-persistent-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/eap64-postgresql-persistent-s2i.json @@ -3,138 +3,167 @@ "apiVersion": "v1", "metadata": { "annotations": { - "description": "Application template for EAP 6 PostgreSQL applications with persistent storage built using STI.", - "iconClass" : "icon-jboss" + "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.1.0" }, - "name": "eap6-postgresql-persistent-sti" + "name": "eap64-postgresql-persistent-s2i" }, "labels": { - "template": "eap6-postgresql-persistent-sti" + "template": "eap64-postgresql-persistent-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "EAP Release version, e.g. 6.4, etc.", - "name": "EAP_RELEASE", - "value": "6.4" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "eap-app" + "value": "eap-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "512Mi", + "required": true }, { "description": "Queue names", "name": "HORNETQ_QUEUES", - "value": "" + "value": "", + "required": false }, { "description": "Topic names", "name": "HORNETQ_TOPICS", - "value": "" + "value": "", + "required": false }, { "description": "The name of the secret containing the keystore file", "name": "EAP_HTTPS_SECRET", - "value": "eap-app-secret" + "value": "eap-app-secret", + "required": false }, { "description": "The name of the keystore file within the secret", "name": "EAP_HTTPS_KEYSTORE", - "value": "keystore.jks" + "value": "keystore.jks", + "required": false }, { "description": "The name associated with the server certificate", "name": "EAP_HTTPS_NAME", - "value": "" + "value": "", + "required": false }, { "description": "The password for the keystore and certificate", "name": "EAP_HTTPS_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", - "name": "POSTGRESQL_MAX_CONNECTIONS" + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false }, { "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", - "name": "POSTGRESQL_SHARED_BUFFERS" + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false }, { "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -192,31 +221,6 @@ "spec": { "ports": [ { - "port": 8888, - "targetPort": 8888 - } - ], - "portalIP": "None", - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}-ping", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Ping service for clustered applications." - } - } - }, - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { "port": 5432, "targetPort": 5432 } @@ -238,9 +242,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -249,7 +253,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -258,9 +262,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -269,12 +273,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -301,18 +305,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-eap6-openshift:${EAP_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.1" } } }, @@ -326,18 +331,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -368,6 +376,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -384,6 +395,7 @@ }, "spec": { "serviceAccount": "eap-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -460,12 +472,16 @@ "value": "${DB_TX_ISOLATION}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", - "value": "${APPLICATION_NAME}-ping" + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", - "value": "8888" + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } }, { "name": "EAP_HTTPS_KEYSTORE_DIR", @@ -533,10 +549,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "postgresql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -552,6 +571,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-postgresql", @@ -564,10 +584,10 @@ } ], "volumeMounts": [ - { - "mountPath": "/var/lib/pgsql/data", - "name": "${APPLICATION_NAME}-postgresql-pvol" - } + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } ], "env": [ { @@ -615,7 +635,9 @@ } }, "spec": { - "accessModes": [ "ReadWriteOnce" ], + "accessModes": [ + "ReadWriteOnce" + ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" @@ -624,4 +646,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/eap6-postgresql-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/eap64-postgresql-s2i.json index 9d660cb42..e879e51cf 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/eap6-postgresql-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/eap64-postgresql-s2i.json @@ -3,133 +3,161 @@ "apiVersion": "v1", "metadata": { "annotations": { - "description": "Application template for EAP 6 PostgreSQL applications built using STI.", - "iconClass" : "icon-jboss" + "description": "Application template for EAP 6 PostgreSQL applications built using S2I.", + "iconClass": "icon-jboss", + "tags": "eap,postgresql,javaee,java,database,jboss,xpaas", + "version": "1.1.0" }, - "name": "eap6-postgresql-sti" + "name": "eap64-postgresql-s2i" }, "labels": { - "template": "eap6-postgresql-sti" + "template": "eap64-postgresql-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "EAP Release version, e.g. 6.4, etc.", - "name": "EAP_RELEASE", - "value": "6.4" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "eap-app" + "value": "eap-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "Queue names", "name": "HORNETQ_QUEUES", - "value": "" + "value": "", + "required": false }, { "description": "Topic names", "name": "HORNETQ_TOPICS", - "value": "" + "value": "", + "required": false }, { "description": "The name of the secret containing the keystore file", "name": "EAP_HTTPS_SECRET", - "value": "eap-app-secret" + "value": "eap-app-secret", + "required": false }, { "description": "The name of the keystore file within the secret", "name": "EAP_HTTPS_KEYSTORE", - "value": "keystore.jks" + "value": "keystore.jks", + "required": false }, { "description": "The name associated with the server certificate", "name": "EAP_HTTPS_NAME", - "value": "" + "value": "", + "required": false }, { "description": "The password for the keystore and certificate", "name": "EAP_HTTPS_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", - "name": "POSTGRESQL_MAX_CONNECTIONS" + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false }, { "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", - "name": "POSTGRESQL_SHARED_BUFFERS" + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false }, { "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -187,31 +215,6 @@ "spec": { "ports": [ { - "port": 8888, - "targetPort": 8888 - } - ], - "portalIP": "None", - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}-ping", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Ping service for clustered applications." - } - } - }, - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { "port": 5432, "targetPort": 5432 } @@ -233,9 +236,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -244,7 +247,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -253,9 +256,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -264,12 +267,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -296,18 +299,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-eap6-openshift:${EAP_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap64-openshift:1.1" } } }, @@ -321,18 +325,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -363,6 +370,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -379,6 +389,7 @@ }, "spec": { "serviceAccount": "eap-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -455,12 +466,16 @@ "value": "${DB_TX_ISOLATION}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", - "value": "${APPLICATION_NAME}-ping" + "name": "OPENSHIFT_KUBE_PING_LABELS", + "value": "application=${APPLICATION_NAME}" }, { - "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", - "value": "8888" + "name": "OPENSHIFT_KUBE_PING_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } }, { "name": "EAP_HTTPS_KEYSTORE_DIR", @@ -528,10 +543,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "postgresql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -547,6 +565,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-postgresql", @@ -587,4 +606,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-basic-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-basic-s2i.json index d74c2dfe3..729079130 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-basic-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-basic-s2i.json @@ -3,67 +3,81 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS applications built using STI." + "iconClass": "icon-tomcat", + "description": "Application template for JWS applications built using S2I.", + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.1.0" }, - "name": "jws-tomcat7-basic-sti" + "name": "jws30-tomcat7-basic-s2i" }, "labels": { - "template": "jws-tomcat7-basic-sti" + "template": "jws30-tomcat7-basic-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "tomcat-websocket-chat", + "required": false }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -94,9 +108,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -105,7 +119,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -134,18 +148,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat7-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat7-openshift:1.1" } } }, @@ -159,18 +174,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -201,6 +219,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -216,6 +237,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-https-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-https-s2i.json index d725e0606..7ce7e7fe2 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-https-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-https-s2i.json @@ -3,87 +3,105 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS applications built using STI." + "iconClass": "icon-tomcat", + "description": "Application template for JWS applications built using S2I.", + "tags": "tomcat,tomcat7,java,jboss,xpaas", + "version": "1.1.0" }, - "name": "jws-tomcat8-basic-sti" + "name": "jws30-tomcat7-https-s2i" }, "labels": { - "template": "jws-tomcat8-basic-sti" + "template": "jws30-tomcat7-https-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "tomcat-websocket-chat", + "required": false }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -138,9 +156,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -149,7 +167,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -158,9 +176,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -169,12 +187,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -201,18 +219,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat8-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat7-openshift:1.1" } } }, @@ -226,18 +245,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -268,6 +290,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -284,6 +309,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mongodb-persistent-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json index 0c7b7d8e3..9a08ec0b0 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mongodb-persistent-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mongodb-persistent-s2i.json @@ -3,144 +3,174 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS MongoDB applications with persistent storage built using STI." + "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.1.0" }, - "name": "jws-tomcat7-mongodb-persistent-sti" + "name": "jws30-tomcat7-mongodb-persistent-s2i" }, "labels": { - "template": "jws-tomcat7-mongodb-persistent-sti" + "template": "jws30-tomcat7-mongodb-persistent-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "512Mi", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Disable data file preallocation.", - "name": "MONGODB_NOPREALLOC" + "name": "MONGODB_NOPREALLOC", + "required": false }, { "description": "Set MongoDB to use a smaller default data file size.", - "name": "MONGODB_SMALLFILES" + "name": "MONGODB_SMALLFILES", + "required": false }, { "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", - "name": "MONGODB_QUIET" + "name": "MONGODB_QUIET", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -219,9 +249,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -230,7 +260,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -239,9 +269,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -250,12 +280,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -282,18 +312,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat7-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat7-openshift:1.1" } } }, @@ -307,18 +338,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -349,6 +383,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -365,6 +402,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -497,10 +535,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mongodb:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -516,6 +557,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mongodb", @@ -528,11 +570,11 @@ } ], "volumeMounts": [ - { - "mountPath": "/var/lib/mongodb/data", - "name": "${APPLICATION_NAME}-mongodb-pvol" - } - ], + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-mongodb-pvol" + } + ], "env": [ { "name": "MONGODB_USER", @@ -587,7 +629,9 @@ } }, "spec": { - "accessModes": [ "ReadWriteOnce" ], + "accessModes": [ + "ReadWriteOnce" + ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" @@ -596,4 +640,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mongodb-persistent-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mongodb-s2i.json index cf35d0024..b8dfb3ad3 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mongodb-persistent-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mongodb-s2i.json @@ -3,144 +3,168 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS MongoDB applications with persistent storage built using STI." + "iconClass": "icon-tomcat", + "description": "Application template for JWS MongoDB applications built using S2I.", + "tags": "tomcat,tomcat7,mongodb,java,database,jboss,xpaas", + "version": "1.1.0" }, - "name": "jws-tomcat8-mongodb-persistent-sti" + "name": "jws30-tomcat7-mongodb-s2i" }, "labels": { - "template": "jws-tomcat8-mongodb-persistent-sti" + "template": "jws30-tomcat7-mongodb-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" - }, - { - "description": "Size of persistent storage for database volume.", - "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "root", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Disable data file preallocation.", - "name": "MONGODB_NOPREALLOC" + "name": "MONGODB_NOPREALLOC", + "required": false }, { "description": "Set MongoDB to use a smaller default data file size.", - "name": "MONGODB_SMALLFILES" + "name": "MONGODB_SMALLFILES", + "required": false }, { "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", - "name": "MONGODB_QUIET" + "name": "MONGODB_QUIET", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -219,9 +243,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -230,7 +254,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -239,9 +263,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -250,12 +274,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -282,18 +306,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat8-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat7-openshift:1.1" } } }, @@ -307,18 +332,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -349,6 +377,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -365,6 +396,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -497,10 +529,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mongodb:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -516,6 +551,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mongodb", @@ -527,12 +563,6 @@ "protocol": "TCP" } ], - "volumeMounts": [ - { - "mountPath": "/var/lib/mongodb/data", - "name": "${APPLICATION_NAME}-mongodb-pvol" - } - ], "env": [ { "name": "MONGODB_USER", @@ -564,36 +594,10 @@ } ] } - ], - "volumes": [ - { - "name": "${APPLICATION_NAME}-mongodb-pvol", - "persistentVolumeClaim": { - "claimName": "${APPLICATION_NAME}-mongodb-claim" - } - } ] } } } - }, - { - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "name": "${APPLICATION_NAME}-mongodb-claim", - "labels": { - "application": "${APPLICATION_NAME}" - } - }, - "spec": { - "accessModes": [ "ReadWriteOnce" ], - "resources": { - "requests": { - "storage": "${VOLUME_CAPACITY}" - } - } - } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mysql-persistent-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json index 547449010..d36e330d3 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mysql-persistent-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mysql-persistent-s2i.json @@ -3,146 +3,177 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS MySQL applications with persistent storage built using STI." + "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.1.0" }, - "name": "jws-tomcat7-mysql-persistent-sti" + "name": "jws30-tomcat7-mysql-persistent-s2i" }, "labels": { - "template": "jws-tomcat7-mysql-persistent-sti" + "template": "jws30-tomcat7-mysql-persistent-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "512Mi", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Sets how the table names are stored and compared.", - "name": "MYSQL_LOWER_CASE_TABLE_NAMES" + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false }, { "description": "The maximum permitted number of simultaneous client connections.", - "name": "MYSQL_MAX_CONNECTIONS" + "name": "MYSQL_MAX_CONNECTIONS", + "required": false }, { "description": "The minimum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MIN_WORD_LEN" + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false }, { "description": "The maximum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MAX_WORD_LEN" + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false }, { "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", - "name": "MYSQL_AIO" + "name": "MYSQL_AIO", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -221,9 +252,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -232,7 +263,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -241,9 +272,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -252,12 +283,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -284,18 +315,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat7-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat7-openshift:1.1" } } }, @@ -309,18 +341,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -351,6 +386,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -367,6 +405,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -495,10 +534,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mysql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -514,6 +556,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mysql", @@ -525,11 +568,11 @@ } ], "volumeMounts": [ - { - "mountPath": "/var/lib/mysql/data", - "name": "${APPLICATION_NAME}-mysql-pvol" - } - ], + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], "env": [ { "name": "MYSQL_USER", @@ -588,7 +631,9 @@ } }, "spec": { - "accessModes": [ "ReadWriteOnce" ], + "accessModes": [ + "ReadWriteOnce" + ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" @@ -597,4 +642,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mysql-persistent-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mysql-s2i.json index 0692817bf..f5309db60 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mysql-persistent-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-mysql-s2i.json @@ -3,146 +3,171 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS MySQL applications with persistent storage built using STI." + "iconClass": "icon-tomcat", + "description": "Application template for JWS MySQL applications built using S2I.", + "tags": "tomcat,tomcat7,mysql,java,database,jboss,xpaas", + "version": "1.1.0" }, - "name": "jws-tomcat8-mysql-persistent-sti" + "name": "jws30-tomcat7-mysql-s2i" }, "labels": { - "template": "jws-tomcat8-mysql-persistent-sti" + "template": "jws30-tomcat7-mysql-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" - }, - { - "description": "Size of persistent storage for database volume.", - "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "root", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Sets how the table names are stored and compared.", - "name": "MYSQL_LOWER_CASE_TABLE_NAMES" + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false }, { "description": "The maximum permitted number of simultaneous client connections.", - "name": "MYSQL_MAX_CONNECTIONS" + "name": "MYSQL_MAX_CONNECTIONS", + "required": false }, { "description": "The minimum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MIN_WORD_LEN" + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false }, { "description": "The maximum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MAX_WORD_LEN" + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false }, { "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", - "name": "MYSQL_AIO" + "name": "MYSQL_AIO", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -221,9 +246,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -232,7 +257,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -241,9 +266,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -252,12 +277,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -284,18 +309,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat8-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat7-openshift:1.1" } } }, @@ -309,18 +335,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -351,6 +380,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -367,6 +399,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -495,10 +528,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mysql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -514,6 +550,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mysql", @@ -524,12 +561,6 @@ "protocol": "TCP" } ], - "volumeMounts": [ - { - "mountPath": "/var/lib/mysql/data", - "name": "${APPLICATION_NAME}-mysql-pvol" - } - ], "env": [ { "name": "MYSQL_USER", @@ -565,36 +596,10 @@ } ] } - ], - "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}" - } - } - } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-postgresql-persistent-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json index b871b48d0..ee88a4c69 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-postgresql-persistent-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-postgresql-persistent-s2i.json @@ -3,134 +3,162 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS PostgreSQL applications with persistent storage built using STI." + "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.1.0" }, - "name": "jws-tomcat7-postgresql-persistent-sti" + "name": "jws30-tomcat7-postgresql-persistent-s2i" }, "labels": { - "template": "jws-tomcat7-postgresql-persistent-sti" + "template": "jws30-tomcat7-postgresql-persistent-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "Size of persistent storage for database volume.", "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "512Mi", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", - "name": "POSTGRESQL_MAX_CONNECTIONS" + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false }, { "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", - "name": "POSTGRESQL_SHARED_BUFFERS" + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -209,9 +237,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -220,7 +248,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -229,9 +257,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -240,12 +268,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -272,18 +300,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat7-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat7-openshift:1.1" } } }, @@ -297,18 +326,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -339,6 +371,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -355,6 +390,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -483,10 +519,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "postgresql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -502,6 +541,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-postgresql", @@ -513,11 +553,11 @@ } ], "volumeMounts": [ - { - "mountPath": "/var/lib/pgsql/data", - "name": "${APPLICATION_NAME}-postgresql-pvol" - } - ], + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], "env": [ { "name": "POSTGRESQL_USER", @@ -564,7 +604,9 @@ } }, "spec": { - "accessModes": [ "ReadWriteOnce" ], + "accessModes": [ + "ReadWriteOnce" + ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" @@ -573,4 +615,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-postgresql-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-postgresql-s2i.json index b46f23225..f5940a7a1 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-postgresql-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat7-postgresql-s2i.json @@ -3,129 +3,156 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS PostgreSQL applications built using STI." + "iconClass": "icon-tomcat", + "description": "Application template for JWS PostgreSQL applications built using S2I.", + "tags": "tomcat,tomcat7,postgresql,java,database,jboss,xpaas", + "version": "1.1.0" }, - "name": "jws-tomcat8-postgresql-sti" + "name": "jws30-tomcat7-postgresql-s2i" }, "labels": { - "template": "jws-tomcat8-postgresql-sti" + "template": "jws30-tomcat7-postgresql-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", - "name": "POSTGRESQL_MAX_CONNECTIONS" + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false }, { "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", - "name": "POSTGRESQL_SHARED_BUFFERS" + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -204,9 +231,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -215,7 +242,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -224,9 +251,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -235,12 +262,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -267,18 +294,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat8-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat7-openshift:1.1" } } }, @@ -292,18 +320,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -334,6 +365,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -350,6 +384,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -478,10 +513,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "postgresql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -497,6 +535,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-postgresql", @@ -536,4 +575,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-basic-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-basic-s2i.json index 3c7812b69..b24ce40ae 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-basic-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-basic-s2i.json @@ -3,67 +3,81 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS applications built using STI." + "iconClass": "icon-tomcat", + "description": "Application template for JWS applications built using S2I.", + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.1.0" }, - "name": "jws-tomcat8-basic-sti" + "name": "jws30-tomcat8-basic-s2i" }, "labels": { - "template": "jws-tomcat8-basic-sti" + "template": "jws30-tomcat8-basic-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "tomcat-websocket-chat", + "required": false }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -94,9 +108,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -105,7 +119,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -134,18 +148,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat8-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat8-openshift:1.1" } } }, @@ -159,18 +174,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -201,6 +219,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -216,6 +237,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-https-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-https-s2i.json index b94142135..7e788d0db 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-https-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-https-s2i.json @@ -3,87 +3,105 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS applications built using STI." + "iconClass": "icon-tomcat", + "description": "Application template for JWS applications built using S2I.", + "tags": "tomcat,tomcat8,java,jboss,xpaas", + "version": "1.1.0" }, - "name": "jws-tomcat7-basic-sti" + "name": "jws30-tomcat8-https-s2i" }, "labels": { - "template": "jws-tomcat7-basic-sti" + "template": "jws30-tomcat8-https-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "tomcat-websocket-chat", + "required": false }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -138,9 +156,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -149,7 +167,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -158,9 +176,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -169,12 +187,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -201,18 +219,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat7-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat8-openshift:1.1" } } }, @@ -226,18 +245,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -268,6 +290,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -284,6 +309,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mongodb-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json index 892f27fe3..2f1d69c75 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mongodb-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mongodb-persistent-s2i.json @@ -3,139 +3,174 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS MongoDB applications built using STI." + "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.1.0" }, - "name": "jws-tomcat7-mongodb-sti" + "name": "jws30-tomcat8-mongodb-persistent-s2i" }, "labels": { - "template": "jws-tomcat7-mongodb-sti" + "template": "jws30-tomcat8-mongodb-persistent-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true + }, + { + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "512Mi", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Disable data file preallocation.", - "name": "MONGODB_NOPREALLOC" + "name": "MONGODB_NOPREALLOC", + "required": false }, { "description": "Set MongoDB to use a smaller default data file size.", - "name": "MONGODB_SMALLFILES" + "name": "MONGODB_SMALLFILES", + "required": false }, { "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", - "name": "MONGODB_QUIET" + "name": "MONGODB_QUIET", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -214,9 +249,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -225,7 +260,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -234,9 +269,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -245,12 +280,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -277,18 +312,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat7-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat8-openshift:1.1" } } }, @@ -302,18 +338,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -344,6 +383,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -360,6 +402,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -492,10 +535,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mongodb:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -511,6 +557,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mongodb", @@ -522,6 +569,12 @@ "protocol": "TCP" } ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-mongodb-pvol" + } + ], "env": [ { "name": "MONGODB_USER", @@ -553,10 +606,38 @@ } ] } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mongodb-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mongodb-claim" + } + } ] } } } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mongodb-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mongodb-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mongodb-s2i.json index a993024f4..bad676f2e 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mongodb-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mongodb-s2i.json @@ -3,139 +3,168 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS MongoDB applications built using STI." + "iconClass": "icon-tomcat", + "description": "Application template for JWS MongoDB applications built using S2I.", + "tags": "tomcat,tomcat8,mongodb,java,database,jboss,xpaas", + "version": "1.1.0" }, - "name": "jws-tomcat8-mongodb-sti" + "name": "jws30-tomcat8-mongodb-s2i" }, "labels": { - "template": "jws-tomcat8-mongodb-sti" + "template": "jws30-tomcat8-mongodb-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Disable data file preallocation.", - "name": "MONGODB_NOPREALLOC" + "name": "MONGODB_NOPREALLOC", + "required": false }, { "description": "Set MongoDB to use a smaller default data file size.", - "name": "MONGODB_SMALLFILES" + "name": "MONGODB_SMALLFILES", + "required": false }, { "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", - "name": "MONGODB_QUIET" + "name": "MONGODB_QUIET", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database admin password", "name": "DB_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -214,9 +243,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -225,7 +254,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -234,9 +263,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -245,12 +274,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -277,18 +306,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat8-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat8-openshift:1.1" } } }, @@ -302,18 +332,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -344,6 +377,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -360,6 +396,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -492,10 +529,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mongodb:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -511,6 +551,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mongodb", @@ -559,4 +600,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mysql-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json index 2ae59ec71..e20a45982 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-mysql-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mysql-persistent-s2i.json @@ -3,141 +3,177 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS MySQL applications built using STI." + "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.1.0" }, - "name": "jws-tomcat7-mysql-sti" + "name": "jws30-tomcat8-mysql-persistent-s2i" }, "labels": { - "template": "jws-tomcat7-mysql-sti" + "template": "jws30-tomcat8-mysql-persistent-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true + }, + { + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "512Mi", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Sets how the table names are stored and compared.", - "name": "MYSQL_LOWER_CASE_TABLE_NAMES" + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false }, { "description": "The maximum permitted number of simultaneous client connections.", - "name": "MYSQL_MAX_CONNECTIONS" + "name": "MYSQL_MAX_CONNECTIONS", + "required": false }, { "description": "The minimum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MIN_WORD_LEN" + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false }, { "description": "The maximum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MAX_WORD_LEN" + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false }, { "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", - "name": "MYSQL_AIO" + "name": "MYSQL_AIO", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -216,9 +252,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -227,7 +263,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -236,9 +272,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -247,12 +283,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -279,18 +315,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat7-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat8-openshift:1.1" } } }, @@ -304,18 +341,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -346,6 +386,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -362,6 +405,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -490,10 +534,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mysql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -509,6 +556,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mysql", @@ -519,6 +567,12 @@ "protocol": "TCP" } ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], "env": [ { "name": "MYSQL_USER", @@ -554,10 +608,38 @@ } ] } + ], + "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}" + } + } + } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mysql-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mysql-s2i.json index 226a983b7..1b9624756 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-mysql-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-mysql-s2i.json @@ -3,141 +3,171 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS MySQL applications built using STI." + "iconClass": "icon-tomcat", + "description": "Application template for JWS MySQL applications built using S2I.", + "tags": "tomcat,tomcat8,mysql,java,database,jboss,xpaas", + "version": "1.1.0" }, - "name": "jws-tomcat8-mysql-sti" + "name": "jws30-tomcat8-mysql-s2i" }, "labels": { - "template": "jws-tomcat8-mysql-sti" + "template": "jws30-tomcat8-mysql-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "Sets how the table names are stored and compared.", - "name": "MYSQL_LOWER_CASE_TABLE_NAMES" + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false }, { "description": "The maximum permitted number of simultaneous client connections.", - "name": "MYSQL_MAX_CONNECTIONS" + "name": "MYSQL_MAX_CONNECTIONS", + "required": false }, { "description": "The minimum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MIN_WORD_LEN" + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false }, { "description": "The maximum length of the word to be included in a FULLTEXT index.", - "name": "MYSQL_FT_MAX_WORD_LEN" + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false }, { "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", - "name": "MYSQL_AIO" + "name": "MYSQL_AIO", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -216,9 +246,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -227,7 +257,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -236,9 +266,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -247,12 +277,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -279,18 +309,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat8-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat8-openshift:1.1" } } }, @@ -304,18 +335,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -346,6 +380,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -362,6 +399,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -490,10 +528,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "mysql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -509,6 +550,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-mysql", @@ -560,4 +602,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-postgresql-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json index 384ff1b8f..dc492a38e 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat7-postgresql-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-postgresql-persistent-s2i.json @@ -3,129 +3,162 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS PostgreSQL applications built using STI." + "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.1.0" }, - "name": "jws-tomcat7-postgresql-sti" + "name": "jws30-tomcat8-postgresql-persistent-s2i" }, "labels": { - "template": "jws-tomcat7-postgresql-sti" + "template": "jws30-tomcat8-postgresql-persistent-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" + "value": "root", + "required": true + }, + { + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "512Mi", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", - "name": "POSTGRESQL_MAX_CONNECTIONS" + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false }, { "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", - "name": "POSTGRESQL_SHARED_BUFFERS" + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -204,9 +237,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -215,7 +248,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -224,9 +257,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -235,12 +268,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -267,18 +300,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat7-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat8-openshift:1.1" } } }, @@ -292,18 +326,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -334,6 +371,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -350,6 +390,7 @@ }, "spec": { "serviceAccount": "jws-service-account", + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}", @@ -478,10 +519,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "postgresql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -497,6 +541,7 @@ } }, "spec": { + "terminationGracePeriodSeconds": 60, "containers": [ { "name": "${APPLICATION_NAME}-postgresql", @@ -507,6 +552,12 @@ "protocol": "TCP" } ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], "env": [ { "name": "POSTGRESQL_USER", @@ -530,10 +581,38 @@ } ] } + ], + "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}" + } + } + } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-postgresql-persistent-sti.json b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-postgresql-s2i.json index b4644ac08..242b37a79 100644 --- a/roles/openshift_examples/files/examples/xpaas-templates/jws-tomcat8-postgresql-persistent-sti.json +++ b/roles/openshift_examples/files/examples/xpaas-templates/jws30-tomcat8-postgresql-s2i.json @@ -3,134 +3,156 @@ "apiVersion": "v1", "metadata": { "annotations": { - "iconClass" : "icon-tomcat", - "description": "Application template for JWS PostgreSQL applications with persistent storage built using STI." + "iconClass": "icon-tomcat", + "description": "Application template for JWS PostgreSQL applications built using S2I.", + "tags": "tomcat,tomcat8,postgresql,java,database,jboss,xpaas", + "version": "1.1.0" }, - "name": "jws-tomcat8-postgresql-persistent-sti" + "name": "jws30-tomcat8-postgresql-s2i" }, "labels": { - "template": "jws-tomcat8-postgresql-persistent-sti" + "template": "jws30-tomcat8-postgresql-s2i", + "xpaas": "1.1.0" }, "parameters": [ { - "description": "JWS Release version, e.g. 3.0, 2.1, etc.", - "name": "JWS_RELEASE", - "value": "3.0" - }, - { "description": "The name for the application.", "name": "APPLICATION_NAME", - "value": "jws-app" + "value": "jws-app", + "required": true }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: <application-name>.<project>.<default-domain-suffix>", - "name": "APPLICATION_HOSTNAME", - "value": "" + "name": "APPLICATION_DOMAIN", + "value": "", + "required": false }, { "description": "Git source URI for application", - "name": "GIT_URI" + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true }, { "description": "Git branch/tag reference", - "name": "GIT_REF", - "value": "master" + "name": "SOURCE_REPOSITORY_REF", + "value": "1.1", + "required": false }, { "description": "Path within Git project to build; empty for root project directory.", - "name": "GIT_CONTEXT_DIR", - "value": "" + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", "name": "DB_JNDI", - "value": "" + "value": "java:jboss/datasources/TodoListDS", + "required": false }, { "description": "Database name", "name": "DB_DATABASE", - "value": "root" - }, - { - "description": "Size of persistent storage for database volume.", - "name": "VOLUME_CAPACITY", - "value": "512Mi" + "value": "root", + "required": true }, { "description": "The name of the secret containing the certificate files", "name": "JWS_HTTPS_SECRET", - "value": "jws-app-secret" + "value": "jws-app-secret", + "required": true }, { "description": "The name of the certificate file within the secret", "name": "JWS_HTTPS_CERTIFICATE", - "value": "server.crt" + "value": "server.crt", + "required": false }, { "description": "The name of the certificate key file within the secret", "name": "JWS_HTTPS_CERTIFICATE_KEY", - "value": "server.key" + "value": "server.key", + "required": false }, { "description": "The certificate password", "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", - "value": "" + "value": "", + "required": false }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", - "name": "DB_MIN_POOL_SIZE" + "name": "DB_MIN_POOL_SIZE", + "required": false }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", - "name": "DB_MAX_POOL_SIZE" + "name": "DB_MAX_POOL_SIZE", + "required": false }, { "description": "Sets transaction-isolation for the configured datasource.", - "name": "DB_TX_ISOLATION" + "name": "DB_TX_ISOLATION", + "required": false }, { "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", - "name": "POSTGRESQL_MAX_CONNECTIONS" + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false }, { "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", - "name": "POSTGRESQL_SHARED_BUFFERS" + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_PASSWORD", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { - "description": "Github trigger secret", - "name": "GITHUB_TRIGGER_SECRET", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true }, { "description": "Generic build trigger secret", - "name": "GENERIC_TRIGGER_SECRET", + "name": "GENERIC_WEBHOOK_SECRET", "from": "[a-zA-Z0-9]{8}", - "generate": "expression" + "generate": "expression", + "required": true + }, + { + "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 } ], "objects": [ @@ -209,9 +231,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http-route", + "id": "${APPLICATION_NAME}-http", "metadata": { - "name": "${APPLICATION_NAME}-http-route", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -220,7 +242,7 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "${APPLICATION_NAME}" } @@ -229,9 +251,9 @@ { "kind": "Route", "apiVersion": "v1", - "id": "${APPLICATION_NAME}-https-route", + "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "${APPLICATION_NAME}-https-route", + "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -240,12 +262,12 @@ } }, "spec": { - "host": "${APPLICATION_HOSTNAME}", + "host": "${APPLICATION_DOMAIN}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { - "termination" : "passthrough" + "termination": "passthrough" } } }, @@ -272,18 +294,19 @@ "source": { "type": "Git", "git": { - "uri": "${GIT_URI}", - "ref": "${GIT_REF}" + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" }, - "contextDir":"${GIT_CONTEXT_DIR}" + "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { + "forcePull": true, "from": { "kind": "ImageStreamTag", - "namespace": "openshift", - "name": "jboss-webserver3-tomcat8-openshift:${JWS_RELEASE}" + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver30-tomcat8-openshift:1.1" } } }, @@ -297,18 +320,21 @@ { "type": "GitHub", "github": { - "secret": "${GITHUB_TRIGGER_SECRET}" + "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { - "secret": "${GENERIC_TRIGGER_SECRET}" + "secret": "${GENERIC_WEBHOOK_SECRET}" } }, { "type": "ImageChange", "imageChange": {} + }, + { + "type": "ConfigChange" } ] } @@ -339,6 +365,9 @@ "name": "${APPLICATION_NAME}" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -483,10 +512,13 @@ ], "from": { "kind": "ImageStreamTag", - "namespace": "openshift", + "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "postgresql:latest" } } + }, + { + "type": "ConfigChange" } ], "replicas": 1, @@ -512,12 +544,6 @@ "protocol": "TCP" } ], - "volumeMounts": [ - { - "mountPath": "/var/lib/pgsql/data", - "name": "${APPLICATION_NAME}-postgresql-pvol" - } - ], "env": [ { "name": "POSTGRESQL_USER", @@ -541,36 +567,10 @@ } ] } - ], - "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}" - } - } - } } ] -} +}
\ No newline at end of file diff --git a/roles/openshift_examples/tasks/main.yml b/roles/openshift_examples/tasks/main.yml index f48e207e7..0b4784bae 100644 --- a/roles/openshift_examples/tasks/main.yml +++ b/roles/openshift_examples/tasks/main.yml @@ -53,6 +53,56 @@ failed_when: "'already exists' not in oex_import_infrastructure.stderr and oex_import_infrastructure.rc != 0" changed_when: false +# The 1.1 release of the xpaas content for OpenShift renamed all the templates +- name: Remove old xpaas templates from filesystem + file: + path: "{{ xpaas_templates_base }}/{{ item }}" + state: absent + with_items: + - amq6-persistent.json + - amq6.json + - eap6-amq-persistent-sti.json + - eap6-amq-sti.json + - eap6-basic-sti.json + - eap6-https-sti.json + - eap6-mongodb-persistent-sti.json + - eap6-mongodb-sti.json + - eap6-mysql-persistent-sti.json + - eap6-mysql-sti.json + - eap6-postgresql-persistent-sti.json + - eap6-postgresql-sti.json + - jws-tomcat7-basic-sti.json + - jws-tomcat7-https-sti.json + - jws-tomcat7-mongodb-sti.json + - jws-tomcat7-mongodb-persistent-sti.json + - jws-tomcat7-mysql-persistent-sti.json + - jws-tomcat7-mysql-sti.json + - jws-tomcat7-postgresql-persistent-sti.json + - jws-tomcat8-postgresql-persistent-sti.json + - jws-tomcat8-basic-sti.json + - jws-tomcat8-https-sti.json + - jws-tomcat8-mongodb-sti.json + - jws-tomcat8-mongodb-persistent-sti.json + - jws-tomcat8-mysql-sti.json + - jws-tomcat8-mysql-persistent-sti.json + - jws-tomcat8-postgresql-sti.json + - jws-tomcat7-postgresql-sti.json + +- name: Remove old xpaas templates from openshift namespace + command: > + {{ openshift.common.client_binary }} -n openshift delete + templates/amq6 templates/amq6-persistent templates/eap6-amq-persistent-sti templates/eap6-amq-sti \ + templates/eap6-basic-sti templates/eap6-basic-sti templates/eap6-mongodb-persistent-sti templates/eap6-mongodb-sti \ + templates/eap6-mysql-persistent-sti templates/eap6-mysql-sti templates/eap6-postgresql-persistent-sti \ + templates/eap6-postgresql-sti templates/jws-tomcat7-basic-sti templates/jws-tomcat7-basic-sti \ + templates/jws-tomcat7-mongodb-persistent-sti templates/jws-tomcat7-mongodb-sti \ + templates/jws-tomcat7-mysql-persistent-sti templates/jws-tomcat7-mysql-sti \ + templates/jws-tomcat7-postgresql-persistent-sti templates/jws-tomcat7-postgresql-sti \ + templates/jws-tomcat8-basic-sti templates/jws-tomcat8-basic-sti templates/jws-tomcat8-mongodb-persistent-sti + when: openshift_examples_load_xpaas | bool + register: oex_delete_old_xpaas_templates + failed_when: "'not found' not in oex_delete_old_xpaas_templates.stderr and oex_delete_old_xpaas_templates.rc != 0" + changed_when: false - name: Import xPaas image streams command: > diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index 9a5d36643..ae530eadd 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -545,7 +545,6 @@ def set_aggregate_facts(facts): first_svc_ip = first_ip(facts['master']['portal_net']) all_hostnames.add(first_svc_ip) internal_hostnames.add(first_svc_ip) - _add_etcd_data_dir_fact(facts) facts['common']['all_hostnames'] = list(all_hostnames) facts['common']['internal_hostnames'] = list(internal_hostnames) @@ -553,7 +552,7 @@ def set_aggregate_facts(facts): return facts -def _add_etcd_data_dir_fact(facts): +def set_etcd_facts_if_unset(facts): """ If using embedded etcd, loads the data directory from master-config.yaml. @@ -561,38 +560,39 @@ def _add_etcd_data_dir_fact(facts): If anything goes wrong parsing these, the fact will not be set. """ - if facts['master']['embedded_etcd']: - try: - # Parse master config to find actual etcd data dir: - master_cfg_path = os.path.join(facts['common']['config_base'], - 'master/master-config.yaml') - master_cfg_f = open(master_cfg_path, 'r') - config = yaml.safe_load(master_cfg_f.read()) - master_cfg_f.close() - - facts['master']['etcd_data_dir'] = \ - config['etcdConfig']['storageDirectory'] - # We don't want exceptions bubbling up here: - # pylint: disable=broad-except - except Exception: - pass - else: - # Read ETCD_DATA_DIR from /etc/etcd/etcd.conf: - try: - # Add a fake section for parsing: - ini_str = '[root]\n' + open('/etc/etcd/etcd.conf', 'r').read() - ini_fp = StringIO.StringIO(ini_str) - config = ConfigParser.RawConfigParser() - config.readfp(ini_fp) - etcd_data_dir = config.get('root', 'ETCD_DATA_DIR') - if etcd_data_dir.startswith('"') and etcd_data_dir.endswith('"'): - etcd_data_dir = etcd_data_dir[1:-1] - facts['master']['etcd_data_dir'] = etcd_data_dir - # We don't want exceptions bubbling up here: - # pylint: disable=broad-except - except Exception: - pass - + if 'etcd' in facts: + if 'master' in facts and facts['master']['embedded_etcd']: + try: + # Parse master config to find actual etcd data dir: + master_cfg_path = os.path.join(facts['common']['config_base'], + 'master/master-config.yaml') + master_cfg_f = open(master_cfg_path, 'r') + config = yaml.safe_load(master_cfg_f.read()) + master_cfg_f.close() + + facts['etcd']['etcd_data_dir'] = \ + config['etcdConfig']['storageDirectory'] + # We don't want exceptions bubbling up here: + # pylint: disable=broad-except + except Exception: + pass + else: + # Read ETCD_DATA_DIR from /etc/etcd/etcd.conf: + try: + # Add a fake section for parsing: + ini_str = '[root]\n' + open('/etc/etcd/etcd.conf', 'r').read() + ini_fp = StringIO.StringIO(ini_str) + config = ConfigParser.RawConfigParser() + config.readfp(ini_fp) + etcd_data_dir = config.get('root', 'ETCD_DATA_DIR') + if etcd_data_dir.startswith('"') and etcd_data_dir.endswith('"'): + etcd_data_dir = etcd_data_dir[1:-1] + facts['etcd']['etcd_data_dir'] = etcd_data_dir + # We don't want exceptions bubbling up here: + # pylint: disable=broad-except + except Exception: + pass + return facts def set_deployment_facts_if_unset(facts): """ Set Facts that vary based on deployment_type. This currently @@ -956,7 +956,7 @@ class OpenShiftFacts(object): Raises: OpenShiftFactsUnsupportedRoleError: """ - known_roles = ['common', 'master', 'node', 'master_sdn', 'node_sdn', 'dns'] + known_roles = ['common', 'master', 'node', 'master_sdn', 'node_sdn', 'dns', 'etcd'] def __init__(self, role, filename, local_facts): self.changed = False @@ -999,6 +999,7 @@ class OpenShiftFacts(object): facts = set_deployment_facts_if_unset(facts) facts = set_version_facts_if_unset(facts) facts = set_aggregate_facts(facts) + facts = set_etcd_facts_if_unset(facts) return dict(openshift=facts) def get_defaults(self, roles): diff --git a/roles/os_zabbix/tasks/main.yml b/roles/os_zabbix/tasks/main.yml index 82bf78b57..59c89bb02 100644 --- a/roles/os_zabbix/tasks/main.yml +++ b/roles/os_zabbix/tasks/main.yml @@ -16,6 +16,7 @@ - include_vars: template_app_zabbix_server.yml - include_vars: template_app_zabbix_agent.yml - include_vars: template_performance_copilot.yml +- include_vars: template_aws.yml - name: Include Template Heartbeat include: ../../lib_zabbix/tasks/create_template.yml @@ -88,3 +89,11 @@ server: "{{ ozb_server }}" user: "{{ ozb_user }}" password: "{{ ozb_password }}" + +- name: Include Template AWS + include: ../../lib_zabbix/tasks/create_template.yml + vars: + template: "{{ g_template_aws }}" + server: "{{ ozb_server }}" + user: "{{ ozb_user }}" + password: "{{ ozb_password }}" diff --git a/roles/os_zabbix/vars/template_aws.yml b/roles/os_zabbix/vars/template_aws.yml new file mode 100644 index 000000000..0ed682128 --- /dev/null +++ b/roles/os_zabbix/vars/template_aws.yml @@ -0,0 +1,25 @@ +--- +g_template_aws: + name: Template AWS + zdiscoveryrules: + - name: disc.aws + key: disc.aws + lifetime: 1 + description: "Dynamically register AWS bucket info" + + zitemprototypes: + - discoveryrule_key: disc.aws + name: "S3 bucket size (GB) [{#S3_BUCKET}]" + key: "disc.aws.size[{#S3_BUCKET}]" + value_type: int + description: "Size of S3 bucket" + applications: + - AWS + + - discoveryrule_key: disc.aws + name: "S3 bucket object count [{#S3_BUCKET}]" + key: "disc.aws.objects[{#S3_BUCKET}]" + value_type: int + description: "Objects in S3 bucket" + applications: + - AWS |